如何从 WordPress 搜索中排除特定页面、作者等

您想从 WordPress 搜索中排除特定页面、作者等吗?默认情况下,WordPress 搜索包括搜索结果中的所有帖子和页面.在本文中,我们将向您展示如何轻松地从 WordPress 搜索结果中排除特定页面、帖子、作者、类别等.

Exclude pages, authors, category, tag, and more from WordPress search

为什么要从 WordPress 搜索中排除项目?

默认的 WordPress 搜索功能会显示所有 WordPress 帖子、页面和自定义帖子类型的结果.这对于大多数网站来说是可以接受的,并且不会影响 WordPress SEO 或性能.

但是,如果您经营的是在线商店,那么您可能不希望某些页面出现在搜索结果中.例如,结帐页面、我的帐户页面或成功下载后的感谢页面.

同样,如果您正在运行 WordPress 会员网站或 LMS 插件,那么您可能希望从搜索结果中排除您网站上的页面和自定义帖子类型.

某些网站所有者可能希望隐藏类别或分类法,而其他网站所有者可能希望隐藏特定作者的帖子.通过排除不必要的项目来优化您的站点搜索可提供更好的用户体验并提高您网站的可用性.

话虽如此,让我们来看看如何轻松地从 WordPress 搜索中排除项目.

1.从搜索中排除特定帖子、页面和自定义帖子类型

您需要做的第一件事是安装并激活搜索排除插件.有关更多详细信息,请参阅有关如何安装 WordPress 插件的分步指南.

激活后,编辑要从搜索结果中排除的帖子、页面或自定义帖子类型.在编辑屏幕上,您将看到一个搜索排除框.

Exclude from search box

只需选中"从搜索结果中排除"复选框,不要忘记保存您的帖子/页面.此特定帖子/页面将不再出现在 WordPress 搜索结果中.

要查看您已从搜索中排除的所有项目,请转到设置 »搜索排除页面.在这里,您将看到已从 WordPress 搜索结果中排除的项目列表.

Content you have excluded from WordPress search

如果您想取消限制,只需取消选中您要重新添加的项目旁边的框,然后单击保存更改按钮.

2.从 WordPress 搜索中排除特定类别、标签、自定义分类

此方法要求您向 WordPress 网站添加代码.如果您以前没有这样做过,请查看我们的指南,了解如何在 WordPress 中复制和粘贴代码片段.

首先,您需要找到要排除的类别 ID.

接下来,您需要将以下代码添加到主题的 functions.php 文件或特定于站点的插件中.


function wpb_search_filter( $query ) {
	if ( $query->is_search && !is_admin() )
		$query->set( 'cat','-7' );
	return $query;
}
add_filter( 'pre_get_posts', 'wpb_search_filter' );

不要忘记将 7 替换为您要排除的类别的 ID.

现在,假设您要排除多个类别.这是您将如何修改代码以排除多个类别.

function wpb_search_filter( $query ) {
	if ( $query->is_search && !is_admin() )
		$query->set( 'cat','-7, -10, -21' );
	return $query;
}
add_filter( 'pre_get_posts', 'wpb_search_filter' );

我们只是添加了要排除的类别 ID,以逗号分隔.

从 WordPress 搜索中排除特定标签

如果您想排除在特定标签下提交的帖子,则可以使用以下代码.

function wpb_search_filter( $query ) {
if ( $query->is_search && !is_admin() )
		$query->set( 'tag','-19' );
	return $query;
}
add_filter( 'pre_get_posts', 'wpb_search_filter' );

不要忘记将 19 替换为您要排除的标签的 ID.

同样,您也可以修改代码以排除多个标签.

function wpb_search_filter( $query ) {
if ( $query->is_search && !is_admin() )
		$query->set( 'tag','-19, -27, -56' );
	return $query;
}
add_filter( 'pre_get_posts', 'wpb_search_filter' );

从 WordPress 搜索中排除自定义分类法中的特定术语

如果您想从 WordPress 搜索结果中排除自定义分类法中的术语,则需要添加以下代码.


function wpb_modify_search_query( $query ) {
	global $wp_the_query;
	if( $query === $wp_the_query && $query->is_search() ) {
		$tax_query = array(
			array(
				'taxonomy' => 'genre',
				'field' => 'slug',
				'terms' => 'action',
				'operator' => 'NOT IN',
			)
		);
		$query->set( 'tax_query', $tax_query );
	}
}
add_action( 'pre_get_posts', 'wpb_modify_search_query' );

不要忘记将"流派"替换为自定义分类法,将"操作"替换为要排除的术语.

3.从 WordPress 搜索中排除特定作者

如果您想从 WordPress 搜索结果中排除特定作者创建的帖子,则有两种方法可以做到这一点.

如果作者只有几篇文章,并且您确定他们不会再添加更多文章,那么您可以使用本文中的第一种方法将他们的文章从 WordPress 搜索中排除.

但是,如果作者写了很多帖子,那么您可以使用以下代码将所有帖子从 WordPress 搜索结果中排除.

function wpb_search_filter( $query ) {
	if ( $query->is_search && !is_admin() )
		$query->set( 'author','-24' );
	return $query;
}
add_filter( 'pre_get_posts', 'wpb_search_filter' );

不要忘记将 24 替换为您要排除的作者的用户 ID.

您还可以使用相同的代码通过添加以逗号分隔的用户 ID 来排除多个作者.

function wpb_search_filter( $query ) {
	if ( $query->is_search && !is_admin() )
		$query->set( 'author','-24, -12, -19' );
	return $query;
}
add_filter( 'pre_get_posts', 'wpb_search_filter' );

我们希望本文能帮助您了解如何从 WordPress 搜索中排除特定页面、作者等.您可能还想查看我们的最佳 WordPress 搜索插件列表,以改进您的网站搜索.

3

发表回复