我目前正在一个wp网站上开发搜索功能。计划是在新闻页面上设置搜索功能,只搜索帖子。
我通过在我的函数中添加以下内容来实现这一点。php文件:
/* search just posts */
function SearchFilter($query) {
if ($query->is_search) {
$query->set(\'post_type\', \'post\');
}
return $query;
}
add_filter(\'pre_get_posts\',\'SearchFilter\');
这很好用。但是我还需要在自定义帖子类型列表上创建一个搜索-只搜索自定义帖子,也搜索整个网站的404页面。
你有什么想法可以让我非常感激吗?
最合适的回答,由SO网友:Bainternet 整理而成
您可以将搜索筛选器更改为:
function SearchFilter($query) {
$post_type = $_GET[\'post_type\'];
if (!$post_type) {
$post_type = \'any\';
}
if ($query->is_search) {
$query->set(\'post_type\', $post_type);
};
return $query;
}
add_filter(\'pre_get_posts\',\'SearchFilter\');
然后在您的新闻搜索表单上添加:
<input type="hidden" name="post_type" value="post" />
在自定义帖子类型列表搜索表单上添加
<input type="hidden" name="post_type" value="customtypename" />
在整个网站上搜索,不要添加任何你设置的内容。