阻止WordPress搜索搜索特定页面的父页面

时间:2013-08-08 08:56:11

标签: wordpress search

我在WordPress中有一个包含父页面的页面。我想从WordPress搜索中排除这些父页面。

在functions.php中我试过这个:

function SearchFilter($query) {
if ($query->is_search) {
$query->set('post_parent', '4');
}
return $query;
}

add_filter('pre_get_posts','SearchFilter');

使用此代码只有post_parent是可搜索的,但我想要相反。这看起来怎么样?

更新:问题解决了。这是解决方案(4是要从搜索中排除父页面的特定页面的ID):

function SearchFilter($query) {
    if ($query->is_search) {
        $query->set('post_parent__not_in', array(4));
    }
    return $query;
}

add_filter('pre_get_posts','SearchFilter');

亲切的问候 约翰

2 个答案:

答案 0 :(得分:2)

使用Wordpress 3.6,可以使用新的查询参数:post_parent__not_in

post_parent__not_in (array) - use post ids. Specify posts whose parent is not in an array.

答案 1 :(得分:0)

在主题的function.php文件中使用此代码功能,其中包含您要从主题的自定义搜索栏中排除的页面ID ...并享受它...

// Exclude specific posts/pages from search
function exclude_pages_from_search($query) {    

   if ( $query->is_main_query() && is_search() ) { 

         $exclude_ids = array(11);// Array of the ID's to exclude   
         $query->set( 'post__not_in', $exclude_ids );   
        }   
           return $query; 
     } 

add_filter('pre_get_posts','exclude_pages_from_search' );