gpt4 book ai didi

WordPress:WP_Query 包含来自类别和 meta_query 或仅另一个 meta_query 的帖子

转载 作者:行者123 更新时间:2023-12-05 06:22:41 25 4
gpt4 key购买 nike

我在使用 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);

此方法的问题是,我想按自定义字段“duration”DESC 对帖子进行排序。如果我合并这两个数组,排序不是我想要的那样。

有谁知道更好的方法吗?如果是一个查询,排序就可以了,而且我认为这样效率更高。

感谢您的帮助!

最佳答案

$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'
)
);

$firstArgs = get_posts($firstArgs);
$secondArgs = get_posts($secondArgs);
$your_posts = array_unique(array_merge($firstArgs,$secondArgs),SORT_REGULAR);

_e('<pre>');
print_r($your_posts);
_e('</pre>');

为了更好地理解,请访问 here

关于WordPress:WP_Query 包含来自类别和 meta_query 或仅另一个 meta_query 的帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58988721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com