WP_QUERY和COMMENT_PARENT-仅选择具有顶级评论的帖子

时间:2013-03-10 作者:Chris

我有一个自定义的“电影”帖子类型,我正在使用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);

1 个回复
最合适的回答,由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\'
   );

}
这假设您正在使用表单来选择是否显示带有注释的帖子。

结束