以前分享的『天降横祸被违规 设置满月后不显示评论链接规避』文章中说到很久以前的网友评论时所填写的网址,可能他们已经放弃了网站,导致这个域名已经跳转或者变成了 DU BO 网站。如果评论地址设置为 GO 跳转地址的,这些链接地址甚至会被百度云加速误以为是我们的站点从而被判为违规网站,所以当时就把 GO 跳转地址去掉,并设置了评论超过一个月后就不再显示该评论作者的链接地址。
后来有博主反馈说这种简单粗暴地设置“评论超过一个月之后就不再显示该评论作者的链接地址”的做法很不好,万一有用户看到某篇文章的评论很精彩或者很有意义,想要访问该评论者的博客网站时却无法点击,这样会严重影响用户体验,而且还有可能会打击大家的评论积极性。这个建议真的非常好,但是当初脑子短路没有想到有其他更好的办法代替,所以最后只是把“评论超过一个月之后就不再显示该评论作者的链接地址”改为“评论超过三个月之后就不再显示该评论作者的链接地址”。
今天在工作之余突然又想到这个问题,而且有更好的办法可以代替现在的做法,那就是增加一个判断:如果该条评论的用户最近 3 个月内有评论的,则保留显示链接地址;如果最近 3 个月内都没有评论的,那就不显示链接地址。这样一来就可以去掉有可能存在的链接隐患,也能保证网址链接的有效性,从而提高用户体验。
因为平时我们都是通过邮箱地址来统计评论用户的,所以这次同样以评论邮箱来作为检测条件,大概思路就是写一个函数,获取当前评论的用户邮箱地址,接着搜索评论表获取该邮箱地址最新一条评论的时间,然后与当前时间作对比,如果时间差在 3 个月内就显示评论用户的链接地址,如果超过 3 个月就不显示链接地址。例如:
- // 3 个月不评论则不显示评论链接
- function commentauthor($comment_ID = 0) {
- $url = get_comment_author_url( $comment_ID );
- $author = get_comment_author( $comment_ID );
- global $wpdb;
- $author_mail = get_comment_author_email($comment_ID);
- $zxtime = $wpdb->get_var(
- "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");
- $pltimedb = time() - strtotime($zxtime);
- if ( empty( $url ) || 'http://' == $url || $pltimedb > 7776000)
- echo $author;
- else
- echo "<a href='$url' rel='external nofollow' target='_blank' class='url'>$author</a>";
- }
使用办法就是在我们的主题评论模板中输出评论昵称及链接地址的地方使用这个函数即可。毕竟每一个主题结构可能都不一样,所以本文只是分享具体的思路和一个函数例子而已,至于如何跟主题结合在一起实现该功能就看大家自己的动手能力了。
发表于2018-04-27 10:03 沙发
我现在设置的是30天 我在考虑是否加到90天~~ [奋斗]
@龙笑天30天就是一个月感觉有点短,还是3个月比较合适
发表于2018-04-27 10:39 板凳
哇哦,这就厉害了!
@橘子书[偷笑] 无聊之余瞎折腾而已
发表于2018-04-27 12:10 地板
这个办法不错,在松松导航看到有几年前的博客域名过期可能没有续费,被一些人抢注跳转到了开车网站。哈哈哈 [哈哈]
@橙子VIP视频做导航站最难的就是检测所收录的博客是否还正常,这个工作量非常大
发表于2018-04-27 15:53 4楼
这个好,既增加了自己博客的安全性,又增加访客评论的积极性
@闲鱼是的,感觉还行,当然,这个只是针对我的情况,其他博客只能自行酌情添加了
发表于2018-04-27 19:53 5楼
还有这操作? 其实对于一些老旧评论,可能说原作者没建站打不开了,或者像博主所说的这种情况,我感觉意义不是很大,因为原本你加了go或者是Nofollow,这对蜘蛛没什么影响呀~
@大事记一来避免风险,我当初就是GO跳转但是依然被百度认为是我的站点从而判定我的站点违规;二来站点已经无法点开还显示,用户打开发现无法打开浪费时间和表情,所以还不如不显示呢。
发表于2018-04-27 22:45 6楼
哈哈哈,充能一波来了。。
发表于2018-04-28 12:10 7楼
SELECT语句里可以排除注册用户。
如果是我的话会把语句作成一个视图,节省数据库开销。
@大致[害羞] 对SQL其实都不是很熟,所以只会最基本的,视图的话很少玩,尚未玩过,抽空我再学习看看
发表于2018-04-28 16:22 8楼
这样会提升读者的体验度,很棒,我也来试试
@贵安服贸交易有空的不妨试试,个人感觉还行