我之前在这里提出并接受了一个类似的问题:wp_query and comment_parent - select only posts with top level comments
所以我尝试使用wp\\u query只选择有评论的帖子。我现在面临的问题是,作为高级搜索的一部分,我有许多过滤器,例如名称、位置(国家、地区)、标签等,并且在公认的答案中显示的方法中选择帖子ID变得越来越困难。有很多可能的搜索和选项组合。
理想情况下,我需要一种方法,在全球范围内一次性排除没有评论的帖子。
我希望有一些简单的好东西,比如:
$args = array(
\'post_type\' => \'films\',
\'have_comments\' => true
);
但我似乎找不到这样的东西。
我想可能是函数中的过滤器。php或以某种方式使用have\\u comments()?如果可以的话,我真的不想选择所有帖子并隐藏在have posts循环中,因为wp\\u查询中可能会返回数百行不需要的内容。
对不起,我是这方面的初学者,所以我真的不确定前进的方向。
最合适的回答,由SO网友:birgire 整理而成
您可以尝试以下操作:
add_filter( \'posts_where\', \'filter_where\' );
$query = new WP_Query($args);
remove_filter( \'posts_where\', \'filter_where\' );
在哪里
function filter_where( $where = \'\' ) {
$where .= " AND comment_count > 0 ";
return $where;
}
获取带有评论的帖子。