2014-12-07 93 views
0

在我的wordpress博客中,我和其他人一样,发布帖子和常规页面。如何从wp搜索结果中排除普通页面

如何从提交wp搜索表单时得到的搜索结果中排除正常页面?

假设我有一个帖子和一个页面,都包含单词“foo”。

如何获得“foo”的搜索结果以仅列出帖子?

+0

看一看http://wordpress.stackexchange.com/questions/140664/custom-search-query。 – pbaldauf 2014-12-07 13:37:16

回答

1

您可以使用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'); 
    } 
}); 
0

彼得·古森的答案是好的,但限制了搜索查询结果后类型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; 
} 
相关问题