[原创]wordpress:屏蔽近期评论小工具中博主自己的留言

屏蔽近期评论小工具中博主自己的留言?具体需求是这样的:

我在首页将小工具用户评论搞了出来,但我每次跟的评论都显示在上面,全部把别人的评论覆盖了,请问如何将自己的评论给屏蔽掉呢?
来源:http://www.wpcourse.com/bbs/read-htm-tid-5235-ds-1-page-1.html

针对该问题,可针对widget_comments_args和comments_clauses两个hooks进行定制化处理;分别位于:
widget_comments_args – wp-includes/default-widgets.php中 WP_Widget_Recent_Comments 部分
comments_clauses – wp-includes/comment.php中WP_Comment_Query::query部分

详细实现代码如下:

//查看wp-includes/comment.php中WP_Comment_Query::query部分
//根据传入参数完善查询条件
add_filter( 'comments_clauses', 'wpdit_comments_clauses', 2, 10);
function wpdit_comments_clauses( $clauses, $comments ) {
	global $wpdb;
	if ( isset( $comments->query_vars['not_in__user'] ) && ( $user_id = $comments->query_vars['not_in__user'] ) ) {
		
		if ( is_array( $user_id ) ) {
			$clauses['where'] .= ' AND user_id NOT IN (' . implode( ',', array_map( 'absint', $user_id ) ) . ')';
		} elseif ( '' !== $user_id ) {
			$clauses['where'] .= $wpdb->prepare( ' AND user_id <> %d', $user_id );
		}
	}
	//var_dump($clauses);
	return $clauses;
}

//详细查看wp-includes/default-widgets.php中 WP_Widget_Recent_Comments 部分
//增加参数not_in__user
add_filter( 'widget_comments_args', 'wpdit_widget_comments_args' );
function wpdit_widget_comments_args( $args ){
	$args['not_in__user'] = array(1); //这里放你的ID;
	return $args;
}

将以上代码放置于当前皮肤的functions.php文件中即可实现效果。

3 thoughts on “[原创]wordpress:屏蔽近期评论小工具中博主自己的留言”

    1. 有很多种方法。可以在后台文章列表里,鼠标悬停在作者名字上,从编辑链接地址就可以看到该用户的ID。
      或者通过查看数据库确定用户对应的ID。
      看你怎么方便怎么来了。

Comments are closed.