Pre_Get_Posts筛选器中有多个元值?

时间:2013-08-16 作者:willbeeler

我有一个带有自定义字段的自定义帖子类型,特别是“zip”。我还有一个数组,可以存储20个不同的邮政编码。我想检查一下这些自定义邮件类型中是否有邮政编码。如果他们这样做了,那么我希望他们出现在搜索结果中。如果他们没有,我不想让他们出现。我该怎么做。。?这快把我逼疯了。提前谢谢。

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

结束

相关推荐

Search Post Title Only

我正在使用标准WordPress搜索表单搜索自定义帖子类型。这是我的代码:<form role=\"search\" method=\"get\" id=\"searchform\" action=\"<?php echo home_url( \'/\' ); ?>\"> <input type=\"hidden\" name=\"post_type\" value=\"attorney\" /> <input type=\"text\" valu