WordPress作为当前使用最多的CMS程序,只要我们需要哪些功能,基本上都可以搜索到这类文章解决方案。这也是为什么很多用户喜欢使用WordPress的原因之一。因为有些CMS看似不错,但是很少有技术文档提供解决方案,比如ZBLOG程序也陆续的不再使用。
今天遇到一个客户企业网站中,需要在搜索内容的时候,只能指定客户公司技术文档,而不会出现其他页面包括的文章和内容在搜索结果中出现。这个问题之前并没有遇到过,于是就搜索解决方案。这里把技术文档整理下来,以便以后有需要用到的时候直接使用。
第一、排除某个分类不被搜索
function wp_search_filter_category( $query) {
if ( !$query->is_admin && $query->is_search) {
$query->set(‘cat’,’-12,-13,-14′); // – 符号表示排除这个分类
}
return $query;
}
add_filter(‘pre_get_posts’,’wp_search_filter_category’);
这里根据我们需要,可以将排除的分类直接写到上面第三行代码里。
第二、排除指定文章不被显示
function wp_search_filter_id($query) {
if ( !$query->is_admin && $query->is_search) {
$query->set(‘post__not_in’, array(1,2,3));//输入指定文章ID
}
return $query;
}
add_filter(‘pre_get_posts’,’wp_search_filter_id’);
这里排除指定文章不被显示在搜索结果中。
总结,我们将各自需要的功能把代码和对应ID编辑后添加到当前主题functions.php文件中生效。