跳到主要内容

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

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

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

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

同样,如果您正在运行WordPress成员资格网站LMS插件,则您的网站上可能会有一些页面和自定义帖子类型,您可能希望将它们从搜索结果中排除。

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

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

如何从wordpress搜索中排除特定的页面,作者等
如何从wordpress搜索中排除特定的页面,作者等

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

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

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

只需选中“从搜索结果中排除”复选框,别忘了保存您的帖子/页面。这个特定的帖子/页面将不再出现在WordPress搜索结果中。

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

如果要删除限制,只需取消选中要添加的项目旁边的框,然后单击“保存更改”按钮。

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

别忘了用自定义分类法替换“体裁”,并用您要排除的术语替换“动作”。

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

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

您还可以使用相同的代码通过添加其作者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' );

回到顶部