如何从wp搜索结果中排除普通页面

时间:2014-12-07 12:50:57

标签: wordpress

在我的wordpress博客中,我和其他人一样,发帖和普通页面。

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

说我有一个帖子和一个页面都包含单词" foo"。

如何获得" foo"的搜索结果?只列出帖子?

2 个答案:

答案 0 :(得分: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' );
    }
});

答案 1 :(得分:0)

Pieter Goosen的回答没问题,但将搜索查询结果限制为帖子类型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;
}