• 欢迎访问奇跡の海网站,本站不上传任何资源,所有资源均来自于网络,欢迎加入奇跡の海~! QQ群
  • 本站下载资源为网络上收集整理而来,并且以计算机技术研究交流为目的,版权归原作者所有,仅供大家参考,学习,不存在任何商业目的与商业用途.
  • 本站系统镜像均来自于官方原版,ed2k可视为P2P下载链接。所有操作系统默认均为试用版,如有正版密钥可以有效激活,本站不提供任何激活和相关服务。

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

WP插件 奇跡の海 1年前 (2017-05-30) 170次浏览 已收录 0个评论 扫描二维码

问题:

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

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

近期评论不显示作者评论

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

WordPress4.4 以前版本打开/wp-includes/default-widgets.php,
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 类留言。

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

WordPress4.4 以前版本打开/wp-includes/default-widgets.php,
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>



';
}
/**
注意一下<a href="http://www.seaomc.com/archives/tag/dm" title="查看更多关于代码的文章" target="_blank">代码</a>区别,自行调整
wordpress4.4 之前版本 esc_url( get_comment_link( $comment-&amp;amp;gt;comment_ID ) )
wordpress4.4 之后版本 esc_url( get_comment_link( $comment ) )
**/

修改前后效果

如下:

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

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

版权声明:本站所有文章和资源使用BY-NC-SA协议授权发布 , 转载应当以相同方式注明文章来自“SeaOMC.COM->WordPress 近期评论小工具不显示博主评论!在下边可以分享本文哦!
喜欢 (0)
[]
分享 (0)
奇跡の海
关于作者:
一个WordPress菜鸟!
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址