WordPress ping 功能也就是WordPress的…
您要从WordPress搜索中排除特定页面,作者等吗?默认情况下,WordPress搜索包括搜索结果中的所有帖子和页面。在本文中,我们将向您展示如何轻松地从WordPress搜索结果中排除特定的页面,帖子,作者,类别等。
为什么要从WordPress搜索中排除项目?
默认的WordPress搜索功能显示所有WordPress帖子,页面和自定义帖子类型的结果。这对于大多数网站都是可以接受的,并且不会影响WordPress SEO或性能。
但是,如果您正在运行在线商店,那么有些页面可能不希望出现在搜索结果中。例如,成功下载后的结帐页面,我的帐户页面或感谢页面。
同样,如果您正在运行WordPress成员资格网站或LMS插件,则您的网站上可能会有一些页面和自定义帖子类型,您可能希望将它们从搜索结果中排除。
一些网站所有者可能希望隐藏类别或分类法,而另一些网站所有者可能希望隐藏特定作者的帖子。通过排除不必要的项目来优化网站搜索,可以提供更好的用户体验并提高网站的可用性。
话虽如此,让我们看一下如何轻松地从WordPress搜索中排除项目。

1.从搜索中排除特定的帖子,页面和自定义帖子类型
您需要做的第一件事是安装并激活Search Exclude插件。有关更多详细信息,请参阅有关如何安装WordPress插件的分步指南。
激活后,编辑要从搜索结果中排除的帖子,页面或自定义帖子类型。在编辑屏幕上,您会看到一个搜索排除框。
只需选中“从搜索结果中排除”复选框,别忘了保存您的帖子/页面。这个特定的帖子/页面将不再出现在WordPress搜索结果中。
要查看已从搜索中排除的所有项目,请转到设置»搜索排除页面。在这里,您将看到从WordPress搜索结果中排除的项目列表。
如果要删除限制,只需取消选中要添加的项目旁边的框,然后单击“保存更改”按钮。
2.从WordPress搜索中排除特定类别,标签,自定义分类法
此方法要求您将代码添加到WordPress网站。如果您以前没有做过,请查看我们的指南,了解如何在WordPress中复制和粘贴代码段。
接下来,您需要将以下代码添加到主题的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'
);