我有以下WP\\U查询:
$custom_query_args = array(
\'post_type\' => \'mcg_event\',
\'posts_per_page\' => -1,
\'meta_query\' => array(
\'relation\' => \'AND\',
array(
\'key\' => \'event_status\',
\'value\' => \'archived\',
),
array(
\'key\' => \'event_start_date\',
\'orderby\' => \'meta_value_num\',
\'order\' => \'ASC\',
)
),
);
我想做两件事:
仅获取event\\u状态为的事件archived
按顺序排列结果event_start_date
我可以单独执行这两个查询中的任何一个,都没有问题,但当我按上述方式将它们组合在一起时,顺序没有任何区别。
我错过了什么?
SO网友:karimeo
对于排序,应该使用查询的orderby参数。所以应该是这样的:
$custom_query_args = array(
\'post_type\' => \'mcg_event\',
\'posts_per_page\'=> -1,
\'meta_key\' => \'event_start_date\',
\'orderby\' => \'meta_value_num\',
\'order\' => \'ASC\',
\'meta_query\' => array(
array(
\'key\' => \'event_status\',
\'value\' => \'archived\',
),
)
);
SO网友:Alok Shrestha
用它来更改代码,可能会帮助您找到所需的内容。这里的问题是我们不能包括key
, order
和orderby
在里面meta_query
. 但如果要根据关键字对结果帖子排序,则可以按如下方式传递查询参数:
$custom_query_args = array(
\'post_type\' => \'mcg_event\',
\'posts_per_page\' => -1,
\'order\' => \'ASC\',
\'meta_key\' => \'event_start_date\',
\'orderby\' => \'meta_value_num\',
\'meta_query\' => array(
array(
\'key\' => \'event_status\',
\'value\' => \'archived\',
),
)
);