我在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');
亲切的问候 约翰
答案 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' );