WordPress 根据最后一次评论时间控制是否显示评论者链接

WordPress 根据最后一次评论时间控制是否显示评论者链接,关于对评论者链接输出控制,目前在用:WordPress 博客外链跳转内链代码。之前还参考大发文章,折腾过通过评论数量来限制是否输出显示评论者网址,后来取消掉。

今天折腾这个代码来自:龙笑天下 - WordPress根据评论者最后一次评论时间来决定是否显示评论者链接

原文代码:

function theme_show_comment_author_link( $return , $author, $comment_ID ){
if ( !is_user_logged_in() ) { // 登录用户例外
date_default_timezone_set('PRC'); //时区
$limit_days = 10; //天数,最后一次评论时间距离今天超过 limit_days 天则隐藏评论链接
$comment = get_comment( $comment_ID );
if ( !empty($comment->comment_author_email) ) {
$last_comment = get_comments(array(
'author_email' => $comment->comment_author_email,
'number' => '1',
'orderby' => 'comment_date',
'order' => 'DESC',
'status' => 'approve',
'type' => 'comment'
));
if ( (time() - strtotime($last_comment['0']->comment_date)) > $limit_days*24*3600 ) {
$return = $author;
}
}else{
$return = $author;
}
}
return $return;
}
add_filter('get_comment_author_link','theme_show_comment_author_link', 10, 3);

此代码仅适合使用 the_author_link() 函数来输出评论者名称/链接。

下面是自用渣渣代码:

// 评论链接跳转内链
function commentauthor($comment_ID = 0) {
$comment_temp = get_comment( $comment_ID );
$author = $comment_temp->comment_author;
$url = $comment_temp->comment_author_url ;
$email = $comment_temp->comment_author_email;
$cmuserid = $comment_temp->user_id;
$limit_days = 30; // 天数,最后一次评论时间距离今天超过 $limit_days 天则隐藏评论链接
if ( $cmuserid > 0 ) {
echo "<a href='$url' rel='me' target='_blank' class='url'>$author</a>";
} else if ( empty( $url ) || 'http://' == $url ) {
echo $author;
} else if ( !empty( $email ) && !is_user_logged_in() ) {
date_default_timezone_set('PRC'); //时区
$last_comment = get_comments(array(
'author_email' => $email,
'number' => '1',
'orderby' => 'comment_date',
'order' => 'DESC',
'status' => 'approve',
'type' => 'comment'
));

if ( ( current_time('timestamp') - strtotime( $last_comment['0']->comment_date ) ) > $limit_days*24*3600 ) {
echo "<a href='javascript:;' title='".$url."' class='url'>$author</a>";
} else {
echo "<a href='".home_url()."/go/".base64_encode($url)."' rel='external nofollow noopener' title='".$url."' target='_blank' class='url'>$author</a>";
}
} else {
echo "<a href='".home_url()."/go/".base64_encode($url)."' rel='external nofollow noopener' target='_blank' title='".$url."' class='url'>$author</a>";
}
}

需配合主题修改。

温馨提示:每条评论都需要额外查询,评论多的页面可能会比较耗资源。(此功能暂时撤掉)

声明:除非注明,常阳时光文章均为原创
本文地址:https://cyhour.com/1080/
转载时必须以链接形式注明原始出处。
Views: 297 Tags:  ,  , 

Comments:26

  1. 不显示链接会少很多评论。

    2019.05.28 22:42 # 回复
    1楼
    • @奶爸de笔记 额,会有点影响吧。每条评论都要查询,评论多的页面比较耗资源,暂时撤掉了。

      2019.05.29 09:52 # 回复
  2. 狂赞 你这优化的非常全面~

    2019.05.29 00:57 # 回复
    2楼
  3. 好像没太大的必要吧,尽管功能很细

    2019.05.29 13:39 # 回复
    3楼
    • @灰狼 确实没有太大必要,链接已经跳转处理过……不过要是能再优化一下,加上也挺好😂

      2019.05.29 15:08 # 回复
    • @灰狼 很好的功能哦,就看你的啦。

      2019.05.30 09:35 # 回复
  4. 喜欢一直显示链接,不折腾了……

    2019.05.29 22:33 # 回复
    4楼
  5. 哪位大神能改成typecho的么?改了的话记得通知我一下哦,谢谢啦。

    2019.05.30 09:11 # 回复
    5楼
  6. 不错吖,这想法看起来很有趣~

    2019.05.30 23:33 # 回复
    6楼
  7. 留言者都是客人,倒是可以折腾一下留言的IP总数,这个没人折腾过。

    2019.06.01 00:42 # 回复
    7楼
  8. 折腾不止

    2019.06.13 12:50 # 回复
    8楼
    • @masy 额,心血来潮才会折腾,最近都懒得动……

      2019.06.13 16:32 # 回复
  9. 其实我感觉不显示链接还能在评论,那是真爱。

    2019.06.17 15:03 # 回复
    9楼
  10. 留着备用~~~

    2019.06.21 17:45 # 回复
    10楼
  11. sys

    确实用不上,看看代码学习一下思路也不错嘛

    2019.06.25 17:24 # 回复
    11楼

发表留言

炒蛋:Vultr 送$25 | 搬瓦工年付$19补货,优惠码 BWH26FXH3HIQ | 推荐VPS信息