屏蔽近期评论小工具中博主自己的留言?具体需求是这样的:
我在首页将小工具用户评论搞了出来,但我每次跟的评论都显示在上面,全部把别人的评论覆盖了,请问如何将自己的评论给屏蔽掉呢?
来源: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文件中即可实现效果。
感谢大佬,挺有用的。。。
博主,我用了这个不知道怎么不起作用,想问下,这里的ID应该怎么查看呢?
有很多种方法。可以在后台文章列表里,鼠标悬停在作者名字上,从编辑链接地址就可以看到该用户的ID。
或者通过查看数据库确定用户对应的ID。
看你怎么方便怎么来了。