WordPress站点首页只展示某个分类文章的实现方法

2025.5.29 杂七杂八 511

WordPress站点首页只展示某个分类文章的实现方法 杂七杂八-第1张

本文详细介绍三种在WordPress首页仅显示特定分类文章的方法,包括使用预装主题设置、WP_Query代码修改以及插件方案,每种方法均附操作步骤和代码示例,帮助站长精准控制首页内容展示。

一、使用主题自带功能实现

部分高级主题(如GeneratePress、Astra)内置首页分类筛选功能:

  1. 进入外观 > 自定义 > 首页设置
  2. 查找”首页内容过滤”或类似选项
  3. 选择需要展示的分类目录
  4. 保存设置后刷新首页即可生效

注意:此方法无需代码修改,但受限于主题功能支持程度。

二、通过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

  1. 安装并激活插件
  2. 进入设置 > 阅读
  3. 设置”首页显示”为最新文章
  4. 在插件设置中指定分类

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可通过文章 > 分类目录页面查看

评论