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

WordPress:如何在影片归档页排除特定自定义分类(含子项)的文章?

解决WordPress自定义文章类型归档页排除指定分类(含子项)的问题

你的代码核心问题是定义了分类查询条件但没有将其绑定到主查询对象,导致排除规则根本没生效。以下是修正后的完整代码:

add_action( 'pre_get_posts', 'films_query' );
function films_query( $query ) {
    // 仅在前台、主查询、films归档页生效
    if ( !is_admin() && $query->is_main_query() && is_post_type_archive( 'films' ) ) {
        // 构建分类排除查询
        $tax_query = array(
            array(
                'taxonomy'         => 'categorie_films',
                'field'            => 'term_id',
                'terms'            => 37,
                'operator'         => 'NOT IN',
                'include_children' => true, // 确保排除该分类下的所有子项
            )
        );

        // 绑定分类查询到主查询(原代码缺失的核心步骤)
        $query->set( 'tax_query', $tax_query );
        
        // 其他查询参数设置
        $query->set( 'posts_per_page', '-1' );
        $query->set( 'post_status', 'publish' );
        $query->set( 'orderby', 'title' );
        $query->set( 'order', 'ASC' );
    }
}

关键说明:

  • $query->set( 'tax_query', $tax_query )是实现分类排除的核心,必须将构建好的分类查询条件绑定到主查询对象
  • include_children => true会自动把ID37分类下的所有子术语也纳入排除范围,完全匹配你的需求
  • 前置条件判断确保代码仅在目标页面生效,不会干扰后台或其他页面的查询逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 10:36:24