WordPress如何排除指定分类/文章页面在站内搜索结果?

有些时候,我们可能不想让某分类、文章或页面,出现在WordPress站内搜索结果中。

因此我们可以使用filter(过滤器),来过滤掉某些文章或网页。

WordPress站内搜索排除指定文章或页面

// WordPress搜索结果排除指定文章或页面ID
function wpsite_search_filter_id($query) {
if ( !$query->is_admin && $query->is_search) {
$query->set('post__not_in', array(40,819));
//文章或者页面的ID
}
return $query;
}
add_filter('pre_get_posts','wpsite_search_filter_id');
  • 请注意:需要修改第4行的文章或页面的ID。

WordPress站内搜索排除某些类别的文章

// WordPress搜索结果排除某分类的文章
function wpsite_search_filter_category( $query) {
if ( !$query->is_admin && $query->is_search) {
$query->set('cat','-15,-57');
//分类的ID,前面的减号表示排除;如果直接写ID,则表示只在该分类ID中搜索
}
return $query;
}
add_filter('pre_get_posts','wpsite_search_filter_category');
  • 请注意:修改ID、查看代码注释说明。

WordPress站内搜索排除所有页面

这非常实用,建议添加 ▼

// WordPress搜索结果排除所有页面
function search_filter_page($query) {
if ($query->is_search) {
$query->set('post_type', 'post');
}
return $query;
}
add_filter('pre_get_posts','search_filter_page');

Search Exclude插件不让某篇文章页面显示在站内搜索结果

  • 我们用WordPress建站,本来是不具备站内搜索排除某篇文章页面的功能。
  • 但是,可通过添加WordPress代码,或安装WordPress插件来实现此功能。
  • Search Exclude插件允许你随时将特定文章排除在站内搜索结果中。

安装Search Exclude插件后,你将在文章编辑界面的右侧看到新功能 ▼

安装Search Exclude插件后,你将在文章编辑界面的右侧看到新功能 ▼

以下是安装WordPress插件的方法 ▼

WordPress站内搜索不显示指定的文章

只要选中这个“Exclude from Search Results”选项,该文章就不会再出现在网站的站内搜索结果中。

当你在WordPress前台站内搜索时,你会发现你找不到被排除的文章 ▼

当你在WordPress前台站内搜索时,你会发现你找不到被排除的文章

在Search Exclude插件的管理界面中,你可以查看所有已排除在站内搜索的文章或页面 ▼

在Search Exclude插件的管理界面中,你可以查看所有已排除在站内搜索的文章或页面

  • 并且,可以批量移除它们。