一、使用主题自带功能实现
部分高级主题(如GeneratePress、Astra)内置首页分类筛选功能:
- 进入外观 > 自定义 > 首页设置
- 查找”首页内容过滤”或类似选项
- 选择需要展示的分类目录
- 保存设置后刷新首页即可生效
注意:此方法无需代码修改,但受限于主题功能支持程度。
二、通过functions.php添加自定义查询
修改主题的functions.php
文件(建议使用子主题):
function custom_homepage_category( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( 'cat', 5 ); // 替换5为目标分类ID
}
}
add_action( 'pre_get_posts', 'custom_homepage_category' );
参数说明:
is_home()
:确保只影响首页is_main_query()
:防止影响其他查询cat
参数:可替换为分类ID、名称或别名
三、使用插件方案(推荐非技术用户)
推荐插件及操作流程:
Option 1: Category Specific RSS Feed Menu
- 安装并激活插件
- 进入设置 > 阅读
- 设置”首页显示”为最新文章
- 在插件设置中指定分类
Option 2: Display Posts Shortcode
[display-posts category="news" posts_per_page="10"]
将此短代码添加到首页模板或小工具区域
四、进阶控制方案
需要同时排除多个分类时:
function exclude_home_categories( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( 'category__in', array( 2, 6 ) ); // 只显示ID为2和6的分类
// 或使用排除法
$query->set( 'category__not_in', array( 1, 7 ) );
}
}
add_action( 'pre_get_posts', 'exclude_home_categories' );
注意事项
- 修改前务必备份网站数据和文件
- 代码修改建议在子主题中进行
- 清除缓存后查看效果
- 分类ID可通过文章 > 分类目录页面查看
评论