You are here:  Home » PHP » 如何从WordPress搜索中排除特定页面,作者等

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

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

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

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

但是,如果您正在运行在线商店,则有些页面可能不希望出现在搜索结果中。例如,成功下载后的结帐页面,我的帐户页面或感谢页面。

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

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

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

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

您需要做的第一件事是安装并激活Search Exclude插件。有关更多详细信息,请参阅有关如何安装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搜索中排除特定标记

如果要排除在特定标记下提交的帖子,则可以使用以下代码。

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

不要忘记将19替换为要排除的标记ID。

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

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" );

不要忘记将“genre”替换为自定义分类,将“action”替换为要排除的术语。

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搜索插件列表,以改善您的网站搜索。

评论被关闭。