无法将搜索限制为仅搜索页面

时间:2012-05-02 作者:John Chandler

我试图将搜索限制为仅页面,但它无法正常工作。当我在搜索表单中包含此隐藏字段时:

<input type="hidden" name="post_type" value="page" />
结果包括帖子、页面和自定义帖子类型。如果我将上述内容更改为只搜索帖子,它将正常工作,并且只显示帖子。有人知道为什么我的帖子不能正确地限制为只显示页面吗?

我只需要限制此搜索表单的结果,以便在搜索结果模板或函数中修改搜索查询结果。php对我不起作用。

1 个回复
最合适的回答,由SO网友:Milo 整理而成

对TwentyEleven的默认安装进行的快速测试证实了这一点,我不确定为什么会出现这种情况,但是有一种方法可以通过functions.php.

使用您自己的查询变量向表单中添加隐藏字段:

<input type="hidden" name="my_type" value="page" />
或:

<input type="hidden" name="my_type" value="post,page" />
将新查询变量添加到WP的已识别查询变量:

function wpse50828_query_vars( $query_vars ){
    $query_vars[] = \'my_type\';
    return $query_vars;
}
add_filter( \'query_vars\', \'wpse50828_query_vars\' );
添加代码以在设置查询变量时设置帖子类型:

function wpse50828_search( $query ){
    if( get_query_var(\'my_type\') )
        $query->set(\'post_type\', explode( \',\', get_query_var(\'my_type\') ));

    return $query;
}
add_action( \'parse_query\',\'wpse50828_search\' );

结束

相关推荐

Search engine for WP as CMS

我目前正在运行WP作为CMS,我一直在寻找一个合适的搜索引擎插件来索引该网站。要求如下:基于自定义分类法(aka,能够根据分配给帖子的分类法向下钻取)的方面帖子Fast不显示实际帖子,而是一个摘录:-显示最近的评论日期,作者我遇到过Apache SOLR插件,它做得很好,除了按自定义分类法进行面处理。它按类别、标签和作者进行分面,但类别太复杂了,我不妨重新考虑如何将类别应用于帖子。有人对此有经验吗?谢谢