【发布时间】:2020-03-18 04:48:05
【问题描述】:
我在使用 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 对帖子进行排序。如果我合并这两个数组,排序就不是我想要的那样。
有人知道更好的方法吗?如果是一个查询,排序会起作用,我认为它更有效。
感谢您的帮助!
【问题讨论】:
-
请尝试以下答案
标签: wordpress custom-fields meta-key