带有META_VALUE_NUM的WP_QUERY排序无效

时间:2019-07-11 作者:stefanosn

我有一个名为totalviews的acf字段。它存储我拥有的每个页面的总视图数。字段为数字/数字。然后,我试图找到视图最多的页面,因此我使用函数内的wp\\u查询对存储在acf字段中的数字进行排序。php文件,但我得到了错误的排序顺序结果。这不是ASC也不是DESC。。。我的问题对吗?感谢您的帮助。

$q_args = array(

                \'category__not_in\' => array( 62,63,170,175,176,171,180 ),
                \'post_type\' => \'post\',
                \'posts_per_page\'=>\'-1\',
    \'order\'   => \'DESC\',
                \'meta_query\' =>array(
                        array(
                            \'key\' => \'picture_url\',
                            \'value\' => \'none\',
                            \'compare\' => \'!=\'
                       ),
                                 array(
                                         \'key\' => \'totalviews\',
                                         \'value\' => \'0\',
                                         \'compare\' => \'>=\',
                                         \'type\' => \'NUMERIC\',
                                         \'orderby\' => \'meta_value_num\'
                                )
    )
            );
            $query = new WP_Query( $q_args );

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

根据您的评论:

它在没有array( \'key\' => \'picture_url\', \'value\' => \'none\', \'compare\' => \'!=\' ) 但我需要把它包括在查询中。。。有可能吗?

是,使用named sub-meta queries 像这样:

$q_args = [
    // ... other args here ...
    \'meta_query\' => [
        \'picture_url\' => [ \'key\' => \'picture_url\', \'value\' => \'none\', \'compare\' => \'!=\' ],
        \'totalviews\'  => [ \'key\' => \'totalviews\', \'value\' => \'0\', \'compare\' => \'>=\', \'type\' => \'NUMERIC\' ],
    ],
    \'orderby\' => \'totalviews\', // set this to a key in the above meta queries
    \'order\'   => \'DESC\',
];
Theorderby 参数也可以是数组:

\'orderby\' => [
    \'totalviews\'  => \'DESC\', // sort by meta_query key
    \'picture_url\' => \'ASC\',  // sort by meta_query key
    \'date\'        => \'DESC\', // sort by the post date
]
以及(再次),orderby 不是中数组的有效参数meta_query 大堆看见here 了解更多详细信息。

相关推荐

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

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