在我的wordpress博客中,我和其他人一样,发布帖子和常规页面。如何从wp搜索结果中排除普通页面
如何从提交wp搜索表单时得到的搜索结果中排除正常页面?
假设我有一个帖子和一个页面,都包含单词“foo”。
如何获得“foo”的搜索结果以仅列出帖子?
在我的wordpress博客中,我和其他人一样,发布帖子和常规页面。如何从wp搜索结果中排除普通页面
如何从提交wp搜索表单时得到的搜索结果中排除正常页面?
假设我有一个帖子和一个页面,都包含单词“foo”。
如何获得“foo”的搜索结果以仅列出帖子?
您可以使用pre_get_posts
将主查询更改为仅在'发布'发布类型中进行搜索。在你的functions.php添加此
(注:需要PHP 5.3+)
add_action('pre_get_posts', function ($q) {
if(!is_admin() && $q->is_main_query() && $q->is_search()) {
$q->set('post_type', 'post');
}
});
彼得·古森的答案是好的,但限制了搜索查询结果后类型post
。下面是修改页面后类型的exclude_from_search
财产,离开其他潜在的质疑文章类型完整的另一种方法:
add_action('init', 'so27342745_exclude_from_search');
function so27342745_exclude_from_search()
{
global $wp_post_types;
$wp_post_types['page']->exclude_from_search = true;
}
看一看http://wordpress.stackexchange.com/questions/140664/custom-search-query。 – pbaldauf 2014-12-07 13:37:16