查询帖子,按元值排序

时间:2014-10-28 作者:user998163

我读了很多书,尝试了很多,但都没有得到我想要的:我有自定义的帖子类型,我想在DESC中排序,按其元值排序:

完整查询及其参数:

wp_reset_query();
$args = array(
            \'meta_key\'          => \'completeness\',
            \'order_by\'          => \'meta_value_num\',
            \'posts_per_page\'    => -1,
            \'order\'             => \'DESC\',
            \'post_type\'         => \'datensatz\',
            \'post_status\'       => \'draft\'
        );
$the_query = new WP_Query( $args );
if ( $the_query -> have_posts() ):
    while ( $the_query -> have_posts()) : 
        $the_query -> the_post();
        global $post;
        echo get_the_title().\':\'.get_post_meta( $post->ID, "completeness", TRUE ).\'<br/>\';
    endwhile;
endif;
wp_reset_query();
此查询不起作用。任何帮助都将不胜感激。

我刚刚查看了$wpdb->last_query 得到这个:

 "SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (206,200,199,198,197,[..]) ORDER BY meta_id ASC" 
所以我的WP查询肯定是错误的。。。

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

您的查询看起来不错,但有几个问题。而不是您的代码(来自wp_reset_query();wp_reset_query();) 使用以下代码,让我们知道输出是什么。

$new_args = array(
    \'post_type\'         => \'datensatz\',
    \'post_status\'       => \'draft\',
    \'posts_per_page\'    => -1,
    \'meta_key\'          => \'completeness\',
    \'orderby\'          => \'meta_value_num\',
    \'order\'             => \'DESC\',
);

$my_new_query = new WP_Query( $new_args );

var_dump( $my_new_query->request );

EDIT

现在试试这个。这也应该起作用。

$new_args = array(
    \'post_type\'         => \'datensatz\',
    \'post_status\'       => \'draft\',
    \'posts_per_page\'    => -1,
    \'meta_key\'          => \'completeness\',
    \'orderby\'          => \'meta_value_num\',
    \'order\'             => \'DESC\',
);

$my_new_query = new WP_Query( $new_args );

if ( $my_new_query -> have_posts() ) :
    while ( $my_new_query -> have_posts()) : $my_new_query -> the_post();
        echo get_the_title() . \': \' . get_post_meta( $post->ID, "completeness", TRUE ). \'<br/>\';
    endwhile;
endif;

wp_reset_postdata();

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post