自定义文章类型归档页无法按Category过滤问题求助
解决自定义文章类型kampaania归档页分类筛选失效问题
1. 确认自定义文章类型已关联Category分类法
先检查注册kampaania的代码,必须在register_post_type参数里明确关联默认分类法:
register_post_type( 'kampaania', array( // 其他基础参数(标签、描述、支持字段等) 'taxonomies' => array( 'category' ), // 关键:绑定Category分类法 'has_archive' => true, // 确保开启归档功能 'rewrite' => array( 'slug' => 'kampaania', 'with_front' => false ), // 优化固定链接 ) );
修改后前往「设置→固定链接」点击保存,刷新规则。
2. 修正归档模板的查询逻辑
替换你当前模板里的自定义查询代码,动态读取当前分类参数,不要硬编码分类ID:
<?php // 获取当前页面的分类对象(自动捕获菜单项传递的分类参数) $current_term = get_queried_object(); // 构建精准筛选的查询参数 $args = array( 'post_type' => 'kampaania', 'posts_per_page' => -1, // 按需调整每页显示数量 'tax_query' => array( array( 'taxonomy' => 'category', 'field' => 'term_id', 'terms' => $current_term->term_id, // 使用当前分类ID筛选 'operator' => 'IN' // 确保精准匹配 ), ), ); $kampaania_query = new WP_Query( $args ); if ( $kampaania_query->have_posts() ) : while ( $kampaania_query->have_posts() ) : $kampaania_query->the_post(); // 你的文章内容输出代码(标题、缩略图、内容等) the_title( '<h2>', '</h2>' ); the_excerpt(); endwhile; wp_reset_postdata(); // 重置查询 endif; ?>
3. 检查菜单项的链接正确性
确保分类菜单项的链接指向自定义文章类型的归档+分类组合地址:
- 方式1:在「外观→菜单」中添加「自定义链接」,填写URL格式为:
你的域名/kampaania/?category=分类别名 - 方式2:如果开启了固定链接美化,可直接使用:
你的域名/kampaania/category/分类别名/(需确保rewrite规则生效)
4. 排查代码冲突
检查主题functions.php或插件中是否有pre_get_posts钩子干扰查询,比如:
add_action( 'pre_get_posts', 'adjust_kampaania_query' ); function adjust_kampaania_query( $query ) { if ( !is_admin() && $query->is_main_query() && is_post_type_archive( 'kampaania' ) ) { $query->set( 'post_type', 'kampaania' ); // 不要在这里覆盖或清空tax_query参数,否则会丢失分类筛选条件 } }
如果有类似代码,确保它不会修改或删除tax_query的参数。
内容的提问来源于stack exchange,提问作者ERM
相关产品推荐
相关产品推荐

