wordpress的默认搜索结果显示文章,页面以及其他自定义文章类型,我们在做开发的时候有时候为了让wordpress搜索结果显示某一种或者指定的几种文章类型,我们该如何做呢?

在主题目录下的functions.php里的最下方加入如下代码

function search_filter($query)
{

    if ($query->is_search && !is_admin() && $query->is_main_query()) {
        $query->set('post_type', 'post');
    }
    return $query;
}
add_filter('pre_get_posts', 'search_filter');

代码解释:上面的代码限制wp的搜索结果只显示普通文章这一种文章类型。

假如我们想在搜索结果中只显示产品和普通文章两种文章类型代码如下

function search_filter($query)
{

    if ($query->is_search && !is_admin() && $query->is_main_query()) {
        $query->set('post_type', array('hzt_product','post'));
    }
    return $query;
}
add_filter('pre_get_posts', 'search_filter');

其中’hzt_product’是我自定义的一个产品文章类型。