据我所知,您正在尝试按元值对帖子进行排序。在这种情况下,您可以使用\'orderby => \'meta_value\'
. 因此,您的查询将如下所示:
$args = array(
\'orderby\' => \'meta_value\',
\'meta_key\' => \'stickied\',
);
$query = new WP_Query( $args );
不是那样的
orderby
可以接受多个值,例如:
$args = array(
\'post_type\' => \'page\',
\'orderby\' => array( \'title\' => \'DESC\', \'meta_value\' => \'ASC\' ),
\'meta_key\' => \'stickied\',
);
然而,我不确定是否可以使用多个元值,但这可能是可能的。目前,我的数据库中没有这样的条件来测试它,但基于我的示例和
codex page 你应该能够轻松地尝试一下。
请让我知道,如果根据上述结构按多个值排序对您有效。
挖掘一段时间后,我发现this 答案和此代码提供了此情况的解决方案:
$args = array(
\'post_type\' => \'post\',
\'orderby\' => \'meta_key\',
\'order\' => \'ASC\',
\'meta_query\' => array(
\'relation\' => \'OR\',
array(
\'key\'=>\'stickied\',
\'compare\' => \'EXISTS\'
),
array(
\'key\'=>\'popularity\',
\'compare\' => \'EXISTS\'
)
),
\'post_per_page\'=>-1
);
$query = new WP_Query($args);