我有一个自定义的“电影”帖子类型,我正在使用wp\\u query创建许多搜索过滤器。所有这些都很好,但我现在需要添加一个选项,排除没有任何顶级评论的结果。
我希望它能简单到:
$args = array(
\'post_type\' => \'films\',
\'comment_parent\' => 0
);
但这仍然会返回所有结果。是否可以使用wp\\U查询执行我想要的操作?
编辑
这是我目前的疑问。它会根据流派搜索“电影”帖子类型和过滤器。现在有点混乱,但我只是想在收紧代码之前让一切都正常工作。
$args = array(
\'post_type\' => \'films\'
);
if(isset($_GET[\'g\'])){
$get_genres = $_GET[\'g\'];
$get_genres = array(
\'tax_query\' => array(
array(
\'taxonomy\' => \'genre\',
\'field\' => \'id\',
\'terms\' => $get_genres,
\'operator\' => \'IN\'
)
)
);
$postsperpage = 10;
$offset = $paged == 0 ? 0 : ($paged-1)*$postsperpage;
$paging = array(
\'posts_per_page\' => $postsperpage,
\'offset\' => $offset
);
$ordering = array(
\'orderby\' => \'title\',
\'order\' => \'ASC\'
);
$args = array_merge($get_genres, $args);
$args = array_merge($args, $ordering, $paging);
$wp_query = new WP_Query($args);
最合适的回答,由SO网友:Jacob Rambo 整理而成
没有顶级评论的帖子意味着它根本没有任何评论。除非有自定义设置,否则无法查询没有注释的帖子$wpdb
查询
但是,您可以对帖子进行检查,查看其是否有评论,然后使用has_comments()
如果设置了$wp\\U查询对象。
您可以在此处阅读有关has comments函数的更多信息:http://codex.wordpress.org/Function_Reference/have_comments
您可以执行如下自定义查询:
if(!empty($_GET[\'no_comments\'])){
global $wpdb;
$post_ids= $wpdb->get_col( $wpdb->prepare( "
SELECT ID FROM {$wpdb->posts}
WHERE comment_count = %d AND post_type = %s", 0, \'films\') );
$args = array(
\'post_type\' => \'films\',
\'post__in\' => $post_ids
);
} else {
$args = array(
\'post_type\' => \'films\'
);
}
这假设您正在使用表单来选择是否显示带有注释的帖子。