You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WordPress分类页仅显示当前分类文章,隐藏子分类文章?

解决WordPress分类页仅显示当前分类文章的问题

方法一:无需代码,直接修改区块设置(推荐新手)

这是最简单的方案,不用写代码就能搞定:

  • 进入后台→外观→站点编辑器,找到并打开你的分类归档模板
  • 找到页面中显示文章列表的「查询」区块,点击区块右上角的齿轮图标打开设置面板
  • 在右侧「查询」选项里:
    • 取消勾选「继承查询」(原设置里的"inherit":true会让区块继承包含子分类的默认查询)
    • 选择「当前分类」作为查询分类,同时确保「包含子分类」选项是未勾选状态
  • 保存模板,刷新分类页即可看到效果

方法二:调整代码适配区块查询

如果方法一无效,或者你更倾向用代码解决,可以替换原来的PHP代码:

function exclude_subcategory_posts_in_query_block( $query ) {
    if ( is_category() && isset( $query->query_vars['post_type'] ) && $query->query_vars['post_type'] === 'post' ) {
        $query->set( 'include_children', false );
    }
}
add_action( 'pre_get_posts', 'exclude_subcategory_posts_in_query_block' );
  • 继续用Code Snippets插件添加这段代码并启用
  • 刷新分类页测试效果

为什么原来的代码没生效?

你最初的代码判断了$query->is_main_query(),但区块编辑器的「查询」块使用的是独立查询,不属于主查询范围,所以条件不触发。修改后的代码去掉了主查询的限制,只要是分类页的文章查询就会生效。

内容的提问来源于stack exchange,提问作者Shen Yang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 07:05:20