WordPress近期评论小工具不显示博主评论

Timle.CN:专注 WordPress建站WordPress主题WordPress插件 分享,同时也关注各种 建站资源前端技巧免费资源IT互联网热点 。CTRL+D即可收藏本站,我们期待您的再次光临!

[文章目录]

Timle.CN网站侧边栏添加了Wordpress 自带近期评论widgets小工具,非常好的提升了本站与大家的互动。

但是在使用一段时间后发现,当我集中回复一些留言后,最新评论全都变成自己的回复内容,不美,不美!今天和大家分享怎么来改进近期评论widgets小工具的方法。

问题:

  • 作者(站长)自己的留言也会显示出来。
    当作者连续回复时,最新评论就都是作者自己的留言,这个模块就丧失了其应有的功能。
  • 所有留言的具体内容都不会显示出来。
    默认显示格式为:“读者ID”+“发表在”+“具体文章名”+“上的评论”.
    如显示为:Timle.CN发表在《WiFi钓鱼法追隔壁妹子》。

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

近期评论不显示作者评论

查看wordpress数据库中的wp_comments表,其中字段user_id即用于标识用户,user_id=0为来自访客的留言,因此只需在获取comments时传递user_id=0这个参数即可。

  1. WordPress4.4以前版本打开/wp-includes/default-widgets.php,
  2. WordPress4.4之后版本打开/wp-includes/widgets/class-wp-widget-recent-comments.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类留言。

近期评论直接显示留言内容

  1. WordPress4.4以前版本打开/wp-includes/default-widgets.php,
  2. WordPress4.4之后版本打开/wp-includes/widgets/class-wp-widget-recent-comments.php,

找到以下代码:

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

1、把sprintf( _x( '%1$s on %2$s', 'widgets' )里面的“on”改成冒号“:”。

2、将以下代码:

' . get_the_title($comment->comment_post_ID) . '

修改为

' . mb_strimwidth(strip_tags($comment->comment_content),0,50, '…') . '

这里的数字“50”是用来限制评论显示的字符数长度,可根据页面显示宽度自行修改。

修改后完整代码如下

foreach ( (array) $comments as $comment) {
    $output .= '<li class="recentcomments">';
    /* translators: comments widget: 1: comment author, 2: post link */
    $output .= sprintf( _x( '%1$s:%2$s', 'widgets' ),
        '<span class="comment-author-link">' . get_comment_author_link() . '</span>',
        '<a href="' . esc_url( get_comment_link( $comment->comment_ID ) ) . '">' . mb_strimwidth(strip_tags($comment->comment_content),0,50, '…') . '</a>'
    );
    $output .= '</li>';
}
/**
注意一下代码区别,自行调整
wordpress4.4之前版本esc_url( get_comment_link( $comment->comment_ID ) )
wordpress4.4之后版本esc_url( get_comment_link( $comment ) )
**/

修改前后效果

如下:

1

以上。

PS:其实wodpress对user_id的判定很SB的,如果博主是在管理后台回复的,则user_id值为1;如果是在前台评论页回复的评论,则user_id值为0。所以,通过以上的修改后,想在侧栏近期评论显示博主评论,只需在前台回复评论即可。

版权声明:本站所有文章和资源使用CC BY-NC-SA 3.0 CN协议发布,转载应当以相同方式注明并注明文章来自“Timle.CN -> WordPress近期评论小工具不显示博主评论”。在页面右边可以分享本文哦!

有 12 发吐槽 关于 “WordPress近期评论小工具不显示博主评论

  1. 沙发
    上海SEO小赛 2015-07-9
    :!: :!: 感觉显示要好一些的。。
    • 回复
      Timle.CN 2015-07-9
      @上海SEO小赛 这个还是看个人喜好,我比较喜欢去掉博主评论显示。
  2. 板凳
    同盟源 2015-07-10
    可以直接用is_admin函数判断
    • 回复
      Timle.CN 2015-07-10
      @同盟源 :???: 额,好吧,不过我侧边栏是直接使用的wordprss自带的近期评论小工具。用is_admin判断的时候还是比较麻烦。
  3. 地板
    科技盒子 2015-07-15
    收藏了
  4. 4楼
    ScottJu 2015-10-28
    表示用了 还是老效果,近期评论直接显示留言内容改这个的时候,直接给我来个博客打开空白,还好有备份哇。
  5. 5楼
    ScottJu 2015-10-28
    不知道是不是WordPress版本的问题,
  6. 6楼
    穹庐 2015-12-15
    现在wp4.4的路径不同了要修改的代码在:wp-includes/widgets/class-wp-widget-recent-comments.php作者麻烦改一下吧 :oops:
    • 回复
      Timle.CN 2015-12-15
      @穹庐 感谢提醒,确实是改变了。4.4升级后变化还是很大。
  7. 7楼
    穹庐 2015-12-15
    修改为 ‘ . mb_strimwidth(strip_tags($comment->comment_content),0,50, ‘…’) . ‘这里中间的&gts:是乱码,应该改为->这篇文章你真的认真写了?
    • 回复
      Timle.CN 2015-12-15
      @穹庐 额,又被转码了而已,晚点在改吧

疑问 难过 胜利 微笑 抠鼻 可爱 抓狂 偷笑 奋斗 衰 撇嘴 色 贼笑 爬虫 鼓掌 发怒 擦汗 握手 酷 玫瑰 哭 呲牙

WordPress近期评论小工具不显示博主评论
10 票, 5.00 平均等级 ( 99% 分 )