为了方便用户查询,于是将一张巨型表格拆分成了很多篇文章,一股脑的塞在了博客里,但这样一来,随机文章中大概率会出现好几篇这类仅便利于搜索的文章,主循环中更是不得了,整页整页的类似标题相同缩略图的文章,严重影响了普通用户的浏览。恩,虽然博客的普通用户也不多,大部分时间只有博主自己。
因为这类内容并不面向所有人,所以考虑将其排除于循环之外,仅在用户搜索时展示,这样有需求的用户能搜索到相关的内容,没有需求的用户也不会引起浏览上的不适。
/*==========
循环时按目录排除文章
==========*/
function exclude_category_home( $query ) {
if ( $query->is_home ) {//是否首页
$query->set( 'cat', '-5,' ); //排除的指定分类id
}
return $query;
}
add_filter( 'pre_get_posts', 'exclude_category_home' );
将以上代码粘贴进主题的functions.php文件尾部,就可以实现排除掉某个指定目录的文章。这样一来,无论是首页的主循环,还是侧边栏的近期文章中,都没有了目录id为5的分类中的文章,显示上感觉清爽了许多。
$query->set( 'cat', '-5,' ); //排除的指定分类id
这一句的“-5,”允许是个数组,如果要同时排除多个目录也可以修改成这样:
$query->set( 'cat', '-5,-15,-25,' ); //排除的指定分类id
代码中指定了排除的条件为:
$query->is_home
如果需要更细致的划分,需要自行修改一下判断的条件。