gpt4 book ai didi

php - 查询由 post_object 自定义字段过滤的帖子

转载 作者:行者123 更新时间:2023-12-02 17:39:16 25 4
gpt4 key购买 nike

我正在尝试查询任何将某个 post_object 选为其“父级”的帖子。父值必须与当前帖子的 ID 相匹配。我已经能够通过查询此帖子类型的所有帖子然后比较循环内的值来复制此功能,如下所示:

<?php
$wp_query = new WP_Query();
$wp_query->query( array (
'post_type' => 'my_post_type',
'meta_key'=>'post_object_field'
));

if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

<?php
$parent = get_field('post_object_field');
$parentId = $parent->ID; ?>

<?php if ($postId == $parentId): ?>

// content

<?php endif; ?>
<?php endwhile; endif; ?>

我想知道是否有一种方法可以在查询中检查这个值,如果有,它是否更快或更正确。

最佳答案

要获取给定帖子/页面的所有子帖子/页面,您可以使用参数 post_parent ,使用父帖子的 ID。

例如,如果你有一个帖子

$wp_query->query(  array (
'post_type' => $children_post_type
'post_parent' => $postId
));

当然,是的,执行查询比执行查询+获取字段值+创建变量+循环结果进行比较要高效得多......


编辑:根据您的评论,您似乎实际上是在尝试获取所有那些在发布对象。该字段包含一个数字,即它所关联的帖子的ID,因此您只需添加一个参数meta_value_num即可。在您的查询中:

$wp_query->query(  array (
'post_type' => 'my_post_type',
'meta_key' => 'post_object_field'
'meta_value_num' => $postId
));

这将检索所有具有名为 post_object_field 且值为 $postId 的自定义字段的帖子。


编辑:试试这个:

$args = array(
'post_type' => 'my_post_type',
'meta_query' => array(
array(
'key' => 'post_object_field',
'value' => $postId,
'compare' => '='
)
)
);

关于php - 查询由 post_object 自定义字段过滤的帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22737268/

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