【发布时间】:2018-02-28 04:21:50
【问题描述】:
我正在使用 wordpress 搜索一些有一些限制的内容。每次我保存帖子时,我都会在 meta 中保存一个相关的帖子数组。
然后我尝试搜索与某个帖子相关的所有帖子,我有以下查询。所选帖子是我要查找的帖子的 ID。
我检查了$selected_post,它的值类似于以下值。
$selected_post = "25";
我使用以下指令添加了元值,我使用的是update_post_meta。 $related_posts 包含一个帖子 ID 数组,如下例所示。
update_post_meta( $post->ID, 'related_post', $related_posts );
查询
$arg = array(
'post_type' => 'post',
'posts_per_page' => 5,
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'related_post',
'value' => array( $selected_post ),
'compare' => 'IN',
'type' => 'STRING'
),
),
);
我在我当前的一些帖子中检查了这个元数据,我有类似的东西。
'related_post' => array( '15', '25', '46' );
当我使用WP_Query 执行此查询时,它总是返回一个空数组。我认为我需要在查询中添加更多内容才能使其正常工作。
任何帮助将不胜感激。
【问题讨论】:
-
你的代码很好——你不应该在那里有
'relation' => 'OR',因为你的元查询中只有一个条件,但它应该仍然有效。所以它必须与数据本身有关。您是否确认$selected_post具有有效的单一值?您如何添加related_post(例如自定义字段。使用 add_post_meta.ACF),它是什么格式?如果您只是查询单个值,为什么不使用=而不是IN? -
@FluffyKitten 首先,感谢您的评论。是的,我检查了
$selected_post有一个值。我会更新我的问题,并为您提供您要求的信息。我正在查询我的$selected_post是否在related_posts 数组中,它不是单个值。