使用wp_Query返回评论数>0的帖子

时间:2013-11-03 作者:Patrick Johnson

我已经查看了许多wp\\U查询的示例,但无法理解这一点。如果我比较的是一个元值,那么我可以将其与元查询进行比较,但显然你不能与非元值进行比较?

这就是我认为它会起作用的原因:

$commentpost = new WP_Query( array( \'key\' => \'comment_count\',
                                \'value\' => \'0\',
                                \'compare\' => \'>\',                                                    
                                \'orderby\' => \'comment_count\',
                                \'order\' => \'DESC\', 
                               ) );
任何帮助都将不胜感激。

1 个回复
最合适的回答,由SO网友:kaiser 整理而成

WP_Query 类具有本机可能性orderby 这个comment_count, 它不具有基于这些的相同查询。但是当我们看到posts-表中,我们可以看到没有太多需要修改的内容

ID | post_author | post_date | post_date_gmt | post_content | post_title | post_excerpt | post_status | comment_status | ping_status | post_password | post_name | to_ping | pinged | post_modified | post_modified_gmt | post_content_filtered | post_parent | guid | menu_order | post_type | post_mime_type | comment_count
因此,我们可以做的是拦截查询并修改WHERE 中的子句posts_where-滤器

<?php
defined( \'ABSPATH\' ) or exit;
/* Plugin Name: (#121083) Query WHERE comment count not is 0 */

add_filter( \'posts_where\', \'wpse121083WhereCommentCountNotNull\' );
function wpse121083WhereCommentCountNotNull( $where )
{
    // Don\'t fire more than once:
    remove_filter( current_filter(), __FUNCTION__ );

    # @TODO Add abort clauses/cases here

    return "{$where} AND {$GLOBALS[\'wpdb\']->posts}.comment_count != 0";
}
您仍然需要填写一些位,比如您不想拦截查询的情况。请记住,它没有经过测试。

结束

相关推荐

在POST循环外部加载Comments.php模板

我正在通过ajax加载帖子,并使用$post = get_post( $post_ID );是否有方法加载注释。在我输出帖子后使用php模板?我尝试使用:global $withcomments; $withcomments = true; comments_template(); 但它不在循环中,因此它不加载模板。我正在尝试获取我的评论表单和任何当前的评论来显示,只是遇到了一些困难。任何帮助都将不胜感激!