WordPress 限定显示评论者链接

2016.11.04 | | 40 Comments
文章目录[隐藏]

嗯,折腾无止境。这个功能是,你可以根据评论数来控制是否显示留言者的链接。比如说只有当留言者的评论数大于等于 1024 的时候才显示链接,否则不显示。当然,1024 只是个传说,你可以根据实际修改。

原文:大发 - WordPress 限定显示评论者链接 - https://fatesinger.com/78892

实现原理

这里的评论数根据邮箱来统计,最基本的思路就是根据邮箱来获取评论数,然后根据评论数决定是否显示留言者链接。这样虽然能达到效果,但是非常不科学,因为每条评论都会去查询一次,非常耗费性能。

最终方法是:把判断过程放在评论发布的时候。留言者发布评论的时候,系统获取留言者评论数。如果评论数大于指定数值(比如 1024),则把这个留言者(邮箱)加入到白名单中。然后根据这个白名单来控制是否显示留言者的链接。

实现代码

function fa_is_friend( $email = null , $num = 5 ){
$count = get_comments(array(
'author_email' => $email,
'count' => true,
));

return ( $count > $num );
}

function fa_update_friend_list( $comment_id ){
$comment = get_comment($comment_id);
$friend_list = get_option('friend_list') ? get_option('friend_list') : array();
$email = $comment->comment_author_email;
if ( fa_is_friend($email) && !in_array( $email , $friend_list) ) {
$friend_list[] = $email;
update_option('friend_list',$friend_list);
}
}
add_action('comment_post', 'fa_update_friend_list');


function fa_show_friend_link( $return , $author, $comment_ID ){
$comment = get_comment( $comment_ID );
$email = $comment->comment_author_email;
$friend_list = get_option('friend_list') ? get_option('friend_list') : array();
if ( in_array($email,$friend_list) ) {
return $return;
} else {
return $author;
}
}
add_filter('get_comment_author_link','fa_show_friend_link',10,3);

fa_is_friend 这个函数第二个变量 num 就是控制显示的数量,根据你的需要酌情处理。

注意:本方法仅适合使用 the_author_link() 来输出评论者昵称的主题。如果你使用了自定义拼接的 html,只需要再加个邮箱是否在白名单的判断即可。

添加了此功能代码,则之前所有的评论都显示评论链接,只有当留言者有了新的评论才会出发白名单的更新。

最后,如果你能用将此功能在你优秀的付费主题中,就去打赏大发一下吧!

老杨这里已经用上,来试试看。

——最近更新:2016年11月14日
支付宝扫码打赏微信打赏

如果文章对您有帮助,欢迎移至上方按钮打赏老杨

声明: 除非注明,常阳时光文章均为原创,转载请以链接形式标明本文地址
本文地址:https://cyhour.com/442/

Comments:40

  1. 我来试试。请问我的头像啥时候能给我显示出来?

    2016.11.04 13:11 # 回复
    1楼
    • 老杨2.15k+ Safari 8.0 iPhone iOS 8.3

      @方室网志 这我还真不知道,我没有用缓存插件,官方的 SSL……其实我一直想问你为啥不整个头像呢……

      2016.11.04 14:17 # 回复
    • 老杨2.15k+ Firefox 50.0 Windows 7

      @方室网志 看了你现在有头像的邮箱,之前的邮箱是错的吧?所以没有头像?囧~

      2016.11.22 09:27 # 回复
  2. 我的评论能显示吗

    2016.11.04 13:35 # 回复
    2楼
  3. synyan48 Google Chrome 45.0.2454.101 Windows XP

    这个功能挺有意思的。
    我在想要不要在评论框加上显示评论者留言数量的功能。但是又没想到好的css表现形式。

    2016.11.04 14:40 # 回复
    3楼
  4. 这样的话,我的就不现实了 0.0

    2016.11.04 16:25 # 回复
    4楼
    • 老杨2.15k+ Safari 8.0 iPhone iOS 8.3

      @自定义 我只设置了五条而已,你肯定不止啦,除非又换邮箱。

      2016.11.04 19:34 # 回复
  5. fooleap116 Google Chrome 54.0.2840.71 Windows 7 x64 Edition

    无折腾不博客

    2016.11.04 17:02 # 回复
    5楼
  6. 实际显示的留言数会减少~何必呢~

    2016.11.04 19:23 # 回复
    6楼
    • 老杨2.15k+ Safari 8.0 iPhone iOS 8.3

      @chencool 实际显示的留言数会减少?啥意思?是说加了这个会打击评论者积极性,而减少评论?

      2016.11.04 19:45 # 回复
      • @老杨 评论少的不会显示。标题不应叫“限定显示评论者链接”,而是限制评论者留言显示~

        2016.11.04 20:44 # 回复
        • 老杨2.15k+ Firefox 49.0 Windows 10 x64 Edition

          @chencool 意思都差不多,留言还是能显示的,只是评论者链接根据数量决定显示不显示。

          2016.11.04 22:15 # 回复
  7. 很少折腾这些,我都打算用回官方主题了。~;~

    2016.11.04 22:58 # 回复
    7楼
  8. Mr.He21 Firefox 49.0 Windows 8.1 x64 Edition

    你这是设置了多少才显示链接

    2016.11.04 23:08 # 回复
    8楼
  9. 让我来试一下能不能显示链接啊

    2016.11.05 07:37 # 回复
    9楼
  10. 这样可以防止恶意评论吗?

    2016.11.05 09:43 # 回复
    10楼
  11. 这么说,我是不能显示了

    2016.11.05 14:31 # 回复
    11楼
  12. 这个也是折腾出“境界”了,本来评论链接就被“美化”成自己的链接了,再加这个就没必要了,如果事先没美化倒是可以用用。

    2016.11.06 20:57 # 回复
    12楼
  13. 哈哈,上面那个没显示头像的。。。额。。。我的头像也没显示

    2016.11.08 12:11 # 回复
    13楼
  14. 仔细看看才知道要表达的是什么,原来还有这么奇葩的需求…………

    我是不管三七二十一,先链接上再说!

    2016.11.10 22:14 # 回复
    14楼
    • 老杨2.15k+ Firefox 49.0 Windows 7

      @随望淡思 这需求并不奇葩吧?不就是为了防那些纯 SEO 的,上来就是为了留链接的?不过用在我这里确实有点多余了。

      2016.11.12 12:16 # 回复
  15. 我突然觉得这个主题还不错呢。。

    2016.11.13 17:39 # 回复
    15楼
    • 老杨2.15k+ Firefox 49.0 Windows 10 x64 Edition

      @牧羊人 可能是错觉,哈哈。原版功能更多,我这是阉割了。

      2016.11.13 20:35 # 回复
  16. 喃阿咪陀佛

    2016.11.15 07:35 # 回复
    16楼

发表留言