WordPress 技巧:从搜索结果中排除页面

默认情况下,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,即为文章,当然也可以设置为 page,搜索结果只为 page,比如 WooCommerce 插件加入的 product post_type。上面的代码就会影响这些 post_type 在搜索结果中的显示,因为上面设置为搜索结果只能显示 post 这个默认的 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);

©我爱水煮鱼,本站推荐使用的主机:阿里云,国外主机建议使用BlueHost

本站长期承接 WordPress 优化建站业务,请联系微信:「chenduopapa」。