默认情况下,WordPress 搜索结果显示发布的文章和页面,如果想把页面从 WordPress 搜索结果中排除,可以在当前主题的 functions.php
文件中添加如下的函数:
![WordPress小技巧之从搜索结果中排除页面插图 WordPress小技巧之从搜索结果中排除页面插图](https://static.esw.eswlnk.com/2022/08/20220803150421414.png-esw)
add_filter('pre_get_posts', function($wp_query){
if($wp_query->is_search){
$wp_query->set('post_type', 'post');
}
return $wp_query;
});
以上代码将搜索结果的post_type设为 post,也就是文章,或者是网页,而搜索结果仅为网页。
如果 WordPress安装的其它插件有其它post_type,而post_type又支持在搜索结果中的显示,例如 WooCommerce插件添加了 productpost_type,以上的代码将会影响到post_type在搜索结果中的显示。
因此,最好的办法是:将 page中的post_type对象的属性设定为 true,从而不会影响 WordPress 的正常搜索。
add_filter('register_post_type_args', function($args, $post_type){
iif($post_type == 'page'){
$args['exclude_from_search'] = true;
}
return $args;
}, 10, 2);
📮评论