gpt4 book ai didi

wordpress - 转发器字段的 ACF 查询帖子不为空

转载 作者:行者123 更新时间:2023-12-04 14:24:30 24 4
gpt4 key购买 nike

这个问题在网上好像没有答案,可能是因为不可能。我只是想查询转发器字段“有行”的所有帖子。 IE。

$args = array(
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'repeater_field',
'value' => '',
'compare' => '=!'
)
);

我知道另一种方法是在循环内运行 if 语句以将它们过滤掉,但这与其他一些基于查询中帖子数的逻辑相混淆。

有没有人对此有任何想法?

最佳答案

假设您有一个标记为 的中继器字段我的中继场并且此转发器至少包含一个标记为 的字段中继器上的字段 .

假设你有默认的 wp_表前缀,需要查看DB的wp_postmeta表注意转发器上此字段的值存储在 meta_key 中。 :

NAME_OF_THE_REPEATER_index_NAME_OF_FIELD_ON_THE_REPEATER



所以,在我们的例子中,如果一个帖子在转发器字段上有 3 行,它的值将存储为:
my_repeater_field_0_a_field_on_the_repeater
my_repeater_field_1_a_field_on_the_repeater
my_repeater_field_2_a_field_on_the_repeater

知道这一点,如果你想查询转发器上至少有一行的所有帖子,你可以这样做:
$meta_query = [
[
'key' => 'my_repeater_field_0_a_field_on_the_repeater',
'compare' => 'EXISTS',
]
];

$args = [
'posts_per_page' => -1,
'orderby' => 'date',
'order' => 'DESC',
'meta_query' => $meta_query,
'post_type' => 'post',
'post_status' => 'publish',
];

$posts_array = get_posts( $args );

注:WP Docs 所述,您只能使用 EXISTS WP >= 3.5 上的比较,并且在 WordPress 3.9 及更高版本中使用“EXISTS”或“NOT EXISTS”比较时无需指定值。我还假设您使用的是 PHP >= 5.4,因此您可以使用短数组语法。如果没有,只需更换 []array() .

关于wordpress - 转发器字段的 ACF 查询帖子不为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40027655/

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