从WordPress搜索结果页面中排除页面

时间:2014-04-29 作者:fysalyaqoob

如何从WordPress搜索结果中排除登录成员的页面?

3 个回复
最合适的回答,由SO网友:Brad Dalton 整理而成

使用记事本++之类的代码编辑器将其添加到子主题函数文件中。

您需要将代码中的页面ID更改为您自己的。

Exclude Specific Pages From Search Results

add_filter( \'pre_get_posts\', \'exclude_pages_search_when_logged_in\' );
function exclude_pages_search_when_logged_in($query) {
    if ( $query->is_search && is_user_logged_in() )
        $query->set( \'post__not_in\', array( 1, 2, 3, 4, 5 ) ); 

    return $query;
}

Exclude All Pages From Search Results

add_action(\'pre_get_posts\',\'exclude_all_pages_search\');
function exclude_all_pages_search($query) {
    if (
        ! is_admin()
        && $query->is_main_query()
        && $query->is_search
        && is_user_logged_in()
    )
        $query->set( \'post_type\', \'post\' );
}
来源:http://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts#Exclude_Pages_from_Search_Results

SO网友:Nurealam Sabbir

将以下代码添加到主题的函数中。php文件

它在我客户的网站上运行得很好。

//Exclude all except post from WordPress Search

if (!is_admin()) {
    function wse_search_filter($query) {
        if ($query->is_search) {
            $query->set(\'post_type\', \'post\');
        }
        return $query;
    }
    add_filter(\'pre_get_posts\',\'wse_search_filter\');
}

SO网友:Maidul

您可以在主题上使用此代码functions.php. 请注意,我尚未对此进行测试。

add_filter( \'pre_get_posts\', \'SearchFilter\' );
function SearchFilter( $query ) {
    if ( $query->is_search ) {
        $query->set( \'post__not_in\', array( 2, 5, 12, 14, 20 ) );
    }

    return $query;
}
我是从WPBeginner.

编写时的使用条款:“(…)欢迎您在自己的博客/网站上引用我们的代码片段和黑客攻击,只要您对这篇文章给予充分的信任

结束

相关推荐

Custom Post Type Search

我是wordpress新手,需要修改默认搜索功能。我需要查找什么文件或提供一些教程。。任何帮助都将不胜感激