WordPress侧边栏最新评论「直接显示评论内容」

wordpress博客优化2015-04-26

作者: Duter2016 | 2019-11-04 | 阅读
「编辑」 「本文源码」

WordPress侧边栏自带的最新评论功能太简陋了,不符合实际使用要求。

具体问题如下:

1)所有留言的具体内容都不会显示出来。默认显示格式为:“读者ID”+“在”+“具体文章名”+“上的评论”

2)作者(站长)自己的留言也会显示出来。这样一来,当作者连续回复时,最新评论就都是作者自己的留言了,这个模块就丧失了其应有的功能。

针对以上两个问题,处理方法也不少,有使用插件的(如WP-RecentComments),也有修改代码的。不太复杂的改动尽量不使用插件,以免拖累网站运行速度。因此,本文将介绍如何通过修改代码来解决以上问题。

改进方法

1)让最新留言的具体内容直接显示出来

进入你的网站根目录,在WordPress源程序文件夹中的/wp-includes/widgets/路径下找到class-wp-widget-recent-comments.php,打开编辑之。

搜索到以下代码片段:

foreach ( (array) $comments as $comment) {
$output .=  ‘<li>’ . /* translators: comments widget: 1: comment author, 2: post link */ sprintf(_x(‘%1$s on %2$s’, ‘widgets’), get_comment_author_link(), ‘<a href=”‘ . esc_url( get_comment_link($comment->comment_ID) ) . ‘”>’ . get_the_title($comment->comment_post_ID) . ‘</a>’) . ‘</li>';
}

修改步骤一:

(_x(‘%1$s on %2$s’, ‘widgets’)里面的这个单词“on”改成冒号“:”(英文标点),即

( _x( '%1$s : %2$s', 'widgets' )

修改步骤二:

get_the_title($comment->comment_post_ID)改为

mb_strimwidth(strip_tags($comment->comment_content),0,80,······)

这里的数字“80”是用来限制评论显示的字数(一个汉字是2个字符),可以自行修改,至于后边那个小尾巴”······”则是用来在实际评论字数少于允许显示的字数时补充空白处的,也可以依自己喜欢的格式修改之。

以上修改完成后,最新评论的格式就变为:“读者ID”+”:”+“实际评论内容”

2)让最新评论不显示作者自己的评论

修改对象依然是上面提到的default-widgets.php文件。

搜索到以下代码片段:

$comments = get_comments( apply_filters( 'widget_comments_args', array( 'number' => $number, 'status' => 'approve', 'post_status' => 'publish' ) ) );

修改为以下格式:

$comments = get_comments( apply_filters( 'widget_comments_args', array( 'number' => $number, 'status' => 'approve', 'post_status' => 'publish', 'type' => 'comment', 'user_id' => 0 ) ) );

解释一下:’user_id’ => 0效果为不显示站长自己的回复,’type’ => ‘comment’效果为只显示评论类留言,即,不显示pingback和trackback类留言。

参考文献:


版权声明:本文由 Duter2016 在 2019年11月04日发表。本文采用CC BY-NC-SA 4.0许可协议,非商业转载请注明出处,不得用于商业目的。
文章题目及链接:《WordPress侧边栏最新评论「直接显示评论内容」》




  相关文章:

「游客及非Github用户留言」:

「Github登录用户留言」:

TOP