智能摘要 AI
本文介绍了如何在WordPress中排除页面从搜索结果中显示。默认情况下,WordPress搜索结果包含文章和页面。通过在主题的`functions.php`文件中添加特定函数,可以仅显示文章而不包括页面。具体方法有两种:一是使用`pre_get_posts`过滤器将搜索结果的`post_type`设置为“post”;二是使用`register_post_type_args`过滤器,将`page`的`exclude_from_search`属性设为`true`,以确保不影响其他自定义`post_type`的搜索显示。这两种方法都能有效实现目标,后者更为稳妥。
默认情况下,WordPress 搜索结果显示发布的文章和页面,如果想把页面从 WordPress 搜索结果中排除,可以在当前主题的 functions.php 文件中添加如下的函数:
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);



评论 (0)