3个月不评论则不显示评论链接的思路及实现办法

 懿古今   2018-04-27 09:30:55 发布  随笔日记

以前分享的『天降横祸被违规 设置满月后不显示评论链接规避』文章中说到很久以前的网友评论时所填写的网址,可能他们已经放弃了网站,导致这个域名已经跳转或者变成了 DU BO 网站。如果评论地址设置为 GO 跳转地址的,这些链接地址甚至会被百度云加速误以为是我们的站点从而被判为违规网站,所以当时就把 GO 跳转地址去掉,并设置了评论超过一个月后就不再显示该评论作者的链接地址。

3个月不评论则不显示评论链接的思路及实现办法 - 第1张 - 懿古今(www.yigujin.cn)

后来有博主反馈说这种简单粗暴地设置“评论超过一个月之后就不再显示该评论作者的链接地址”的做法很不好,万一有用户看到某篇文章的评论很精彩或者很有意义,想要访问该评论者的博客网站时却无法点击,这样会严重影响用户体验,而且还有可能会打击大家的评论积极性。这个建议真的非常好,但是当初脑子短路没有想到有其他更好的办法代替,所以最后只是把“评论超过一个月之后就不再显示该评论作者的链接地址”改为“评论超过三个月之后就不再显示该评论作者的链接地址”。

今天在工作之余突然又想到这个问题,而且有更好的办法可以代替现在的做法,那就是增加一个判断:如果该条评论的用户最近 3 个月内有评论的,则保留显示链接地址;如果最近 3 个月内都没有评论的,那就不显示链接地址。这样一来就可以去掉有可能存在的链接隐患,也能保证网址链接的有效性,从而提高用户体验。

因为平时我们都是通过邮箱地址来统计评论用户的,所以这次同样以评论邮箱来作为检测条件,大概思路就是写一个函数,获取当前评论的用户邮箱地址,接着搜索评论表获取该邮箱地址最新一条评论的时间,然后与当前时间作对比,如果时间差在 3 个月内就显示评论用户的链接地址,如果超过 3 个月就不显示链接地址。例如:

  1. // 3 个月不评论则不显示评论链接
  2. function commentauthor($comment_ID = 0) {
  3.     $url    = get_comment_author_url( $comment_ID );
  4.     $author = get_comment_author( $comment_ID );
  5.     global $wpdb;
  6.     $author_mail = get_comment_author_email($comment_ID);
  7.     $zxtime = $wpdb->get_var(
  8. "SELECT comment_date FROM $wpdb->comments WHERE comment_approved = 1 AND comment_author_email = '$author_mail' AND comment_author_url !='' order by comment_date desc limit 1");
  9.     $pltimedb = time() - strtotime($zxtime);
  10.     if ( empty$url ) || 'http://' == $url || $pltimedb > 7776000)
  11.         echo $author;
  12.     else
  13.         echo "<a href='$url' rel='external nofollow' target='_blank' class='url'>$author</a>";
  14. }
理论上以链接地址来作为检测条件可能会更好,因为用邮箱地址的话,万一作者的邮箱地址不变,但是博客网址改变了,那么还显示以前的旧评论所留的网址就没有意义了,毕竟网址已经打不开了。判断地址的话,需要考虑的因素很多,比如地址是 HTTP 还是 HTTPS,最后面是带有斜杠/还是没带有等等,所以我就直接偷懒不折腾了。

使用办法就是在我们的主题评论模板中输出评论昵称及链接地址的地方使用这个函数即可。毕竟每一个主题结构可能都不一样,所以本文只是分享具体的思路和一个函数例子而已,至于如何跟主题结合在一起实现该功能就看大家自己的动手能力了。

本文地址:https://www.yigujin.cn/1591.html

你可能感兴趣的文章

文章标签: ,   ,   ,  
版权声明:本文为原创文章,版权归 懿古今 所有,欢迎分享本文,转载请保留出处!发布此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请发邮件至[email protected],确认后马上更正、删除,谢谢!

发表评论

  1. 龙笑天
    龙笑天 @回复

    我现在设置的是30天 我在考虑是否加到90天~~ [奋斗]

    • 懿古今
      懿古今2018-04-27 14:43  回复

      @龙笑天30天就是一个月感觉有点短,还是3个月比较合适

  2. 橘子书
    橘子书 @回复

    哇哦,这就厉害了!

  3. 橙子VIP视频
    橙子VIP视频 @回复

    这个办法不错,在松松导航看到有几年前的博客域名过期可能没有续费,被一些人抢注跳转到了开车网站。哈哈哈 [哈哈]

    • 懿古今
      懿古今2018-04-27 14:43  回复

      @橙子VIP视频做导航站最难的就是检测所收录的博客是否还正常,这个工作量非常大

  4. 闲鱼
    闲鱼 @回复

    这个好,既增加了自己博客的安全性,又增加访客评论的积极性

    • 懿古今
      懿古今2018-04-28 09:40  回复

      @闲鱼是的,感觉还行,当然,这个只是针对我的情况,其他博客只能自行酌情添加了

  5. 大事记
    大事记 @回复

    还有这操作? 其实对于一些老旧评论,可能说原作者没建站打不开了,或者像博主所说的这种情况,我感觉意义不是很大,因为原本你加了go或者是Nofollow,这对蜘蛛没什么影响呀~

    • 懿古今
      懿古今2018-04-28 09:38  回复

      @大事记一来避免风险,我当初就是GO跳转但是依然被百度认为是我的站点从而判定我的站点违规;二来站点已经无法点开还显示,用户打开发现无法打开浪费时间和表情,所以还不如不显示呢。

  6. 绅士福利
    绅士福利 @回复

    哈哈哈,充能一波来了。。

  7. 大致
    大致 @回复

    SELECT语句里可以排除注册用户。
    如果是我的话会把语句作成一个视图,节省数据库开销。

    • 懿古今
      懿古今2018-05-01 11:36  回复

      @大致[害羞] 对SQL其实都不是很熟,所以只会最基本的,视图的话很少玩,尚未玩过,抽空我再学习看看

  8. 贵安服贸交易
    贵安服贸交易 @回复

    这样会提升读者的体验度,很棒,我也来试试