是否按自定义字段值从搜索中排除自定义帖子类型?

时间:2013-02-13 作者:Ray Gulick

我一直找不到任何关于如何做到这一点的方法,或者这是否可能。

我想做的是不在自定义帖子类型“resources”中显示搜索结果,其中“resource\\u usertype”(key)不是“Public”或“Students”或“alumbers”(value)。

或者,更好的说法是只显示“resource\\u usertype”值为“Public”、“Students”或“alumber”的搜索结果。

2 个回复
SO网友:Eugene Manuilov

您需要为pre_get_posts 过滤器,您可以在其中设置所需内容。请注意,您应该只更改搜索查询,因此您必须检查is_search() 方法返回true。挂钩应如下所示:

add_filter( \'pre_get_posts\', \'wpse8170_pre_get_posts\' );
function wpse8170_pre_get_posts( WP_Query $query ) {
    if ( $query->is_search() ) {
        $query->set( \'post_type\', array( \'resources\' ) );
        $query->set( \'meta_query\', array(
            array(
                \'key\' => \'resource_usertype\',
                \'value\' => array(\'Public\', \'Students\', \'Alumni\'),
                \'compare\' => \'IN\',
            )
        ) );
    }

    return $query;
}

SO网友:vancoder

这是完全可能的!

$args = array(
   \'post_type\' => \'resources\',
   \'meta_query\' => array(
       array(
           \'key\' => \'resource_usertype\',
           \'value\' => array(\'Public\', \'Students\', \'Alumni\'),
           \'compare\' => \'IN\',
       )
   )
 );
 $query = new WP_Query($args);

结束

相关推荐

meta post search

我需要查询post元字段,通过多个复选框进行筛选当前,在提交表单时,查询仅适用于第二个参数(人员)。如何使用两个参数进行筛选?HTML(表单提交)<input type=\"checkbox\" id=\"inlineCheckbox1\" name=\"category[]\" value=\"Planet\"> <input type=\"checkbox\" id=\"inlineCheckbox2\" name=\"category[]\" value=\"People