我有一个带有自定义字段的自定义帖子类型,特别是“zip”。我还有一个数组,可以存储20个不同的邮政编码。我想检查一下这些自定义邮件类型中是否有邮政编码。如果他们这样做了,那么我希望他们出现在搜索结果中。如果他们没有,我不想让他们出现。我该怎么做。。?这快把我逼疯了。提前谢谢。
Pre_Get_Posts筛选器中有多个元值?
1 个回复
最合适的回答,由SO网友:Seth Alling 整理而成
您需要创建两个查询。第一个是在搜索查询中提取所有自定义帖子类型的帖子。
$args = array(
\'post_type\' => YOUR-POST-TYPE,
\'posts_per_page\' => \'-1\',
\'s\' => get_search_query(),
);
$sort_query = new WP_Query($args);
$included_results = array();
然后,您可能需要打印出结果,以便找到邮政编码在数组中的位置。运行循环,检查zip是否在邮政编码数组中(in_array()
) 并将id添加到包含的结果数组中(例如:$included_results[] = $post->ID
)
接下来,您将要结束并重置查询,并使用与之前相同的参数创建一个新查询,但添加\'post__in\' => $included_results
结束