我在使用 WordPress 和 WP_Query 时遇到了一些问题。我想获取按 meta_query 和/或类别过滤的帖子,但我有以下问题:第一种类型的帖子有一个名为“type”的自定义字段,该字段必须填写“exercise”,并且帖子必须位于名为“Level”的类别(这将在之前设置)。第二种类型的帖子只有名为“type”的自定义字段,必须填写“test”。
我不知道如何将这两个条件放在一起。因此,我尝试将其拆分为两个查询,然后将其合并,如下所示:
$firstArgs = array(
'posts_per_page'=> -1,
'category_name' => $level,
'meta_key' => 'duration',
'orderby' => 'meta_value_num',
'order' => 'DESC',
'meta_query' => array(
'key' => 'type',
'value' => 'exercise'
)
);
$secondArgs = array(
'posts_per_page' => -1,
'meta_key' => 'duration',
'orderby' => 'meta_value_num',
'order' => 'DESC',
'meta_query' => array(
'key' => 'type',
'value' => 'test'
)
);
$first_query = new WP_Query( $firstArgs );
$second_query = new WP_Query( $secondArgs );
$result = new WP_Query();
$result->posts = array_merge($first_query->posts, $second_query->posts);
这种方法的问题是,我想按自定义字段“持续时间”DESC 对帖子进行排序。如果我合并这两个数组,排序就不是我想要的那样。
有谁知道这样做的更好方法?如果它是一个查询,排序将起作用,我认为它更有效。
谢谢你的帮助!