WordPress私密留言评论

2016-11-23发布在 Wordpress859 次访问

a1

需求分析

有些人留言时希望内容只对留言的人可见,类似私信。

实现方式

WordPress 评论后会保留评论者的cookies,根据这个cookie 来判断哪些评论是自己发出的,自己可以看到自己的发表的私密评论。站长可以看到所有的评论。如果浏览器 cookies 被清空,你会看不到你自己的私密评论(此私密信息会连你也不认识:) )。

功能代码

源码来自大发博客,利用钩子和过滤器,利用了 wp_commentmeta 这个表可以存储自定义字段的特性。

函数说明

update_comment_meta():  updates the value of an existing comment meta key for the specified comment.

代码逻辑

利用 add_action 触发。只要发表评论,就触发判断,是否为私密评论。如果是私密评论,则加上自定义的 commentmeta: _private。在读取私密评论时,如果评论存在 _private 的自定义属性标记,则不显示具体评论内容。

在大发代码基础上,做了一些样式上的修改:

function liao_private_message_hook( $comment_content , $comment){
    $comment_ID = $comment->comment_ID;
    $parent_ID = $comment->comment_parent;
    $parent_email = get_comment_author_email($parent_ID);
    $is_private = get_comment_meta($comment_ID,'_private',true);
    $email = $comment->comment_author_email;
    $current_commenter = wp_get_current_commenter();
    if ( $is_private ) $comment_content = '#私密# ' . $comment_content;
    if ( $current_commenter['comment_author_email'] == $email || $parent_email == $current_commenter['comment_author_email'] || current_user_can('delete_user') ) return $comment_content;
    if ( $is_private ) return '<span style="color:#A6A6A6"><i class="fa fa-lock fa-fw"></i>该评论为私密评论</span>';
    return $comment_content;
}
add_filter('get_comment_text','liao_private_message_hook',10,2);

function liao_mark_private_message( $comment_id ){
    if ( $_POST['is-private'] ) {
        update_comment_meta($comment_id,'_private','true');
    }
}
add_action('comment_post', 'liao_mark_private_message');

我们需要加一个是否设为私密评论的选项。如果你的评论框是HTML表单,那么就加个单选框吧。

<input type="checkbox" name="is-private">

效果如下:

private-message

勾选“设为私密评论”并发表评论之后,在前台其他人看到该消息都显示为:“该评论为私密评论”。效果如下图:

private-message4

我就知道你们一定会去看截图里的文字…… 对于有热心网友反映的:有些招聘单位在料网上发布虚假外贸招聘信息或有任何恶意欺骗应聘者的情况,欢迎知情人士举报告知!

至于样式,自由发挥。

就这样~

分享到微信朋友圈

LiaoSam
LiaoSam
外贸综合症患者

相关文章

    暂无

3条评论

发表我的评论

取消评论

邮箱白名单说明:最近料网自动提醒邮件经常会被一些邮件服务商拦截。为了您顺利并及时地收取留言被回复的提醒邮件,请在您邮箱中把料网 liaosam.com 加入白名单域名。

已读说明
设为私密评论
添加表情

Hi,您需要填写昵称和邮箱!

您的邮箱地址不会公开,仅仅用于收取回复。建议填写QQ邮箱,不宜填写工作邮箱。
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址 (没有就留空)
呃,评论有点多呢... 料网小秘书为您玩命加载中...
  1. #2

    有点儿意思,回头试试!

    1个月前 (04-22)回复
  2. #1

    好多都没有看到私密评论,PO主还是挺用心的

    6个月前 (11-24)回复
    • LiaoSam
      Liaosam,外贸综合症患者。
      @企业管理培训 谢谢热心评论!
      2个月前 (04-11)回复