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

WordPress taxonomy页WP_Query未按当前term过滤显示全部文章问题

问题根因

你的自定义文章查询返回全部文章,核心原因是WP_Query参数写法错误:

  • 不存在顶层的taxonomy参数可以直接传入分类ID做筛选,你写的'taxonomy' => $term->term_id属于无效参数,会被WordPress直接忽略,没有生效的分类筛选条件,查询自然会返回对应文章类型下的全部内容。
修正方案

WordPress的分类法关联查询必须使用tax_query参数组配置筛选规则,修正后的查询参数代码如下:

<?php
$term = get_queried_object();

// 正确的查询参数配置
$args1 = array(
    'post_type' => 'properties-for-sale',
    'tax_query' => array(
        array(
            'taxonomy' => $term->taxonomy, // 自动读取当前页面对应的分类法标识,无需硬编码
            'field'    => 'term_id',
            'terms'    => $term->term_id,
        )
    )
);
$query = new WP_Query($args1);
额外代码优化建议

你现有代码还有两处容易出问题的点,建议同步调整:

  • HTML标签闭合逻辑错误:当前swiper外层容器、swiper-wrapper的开标签写在have_posts()判断内部,但对应的闭合标签写在判断外部,如果查询无结果会出现HTML结构错乱,建议把整个swiper容器的输出都放在文章判断成立的分支内。
  • 收藏按钮参数错误:循环内调用the_favorites_button($post_id, $site_id)时未定义$post_id变量,建议替换为the_favorites_button(get_the_ID()),避免取到错误的文章ID。

补充说明:taxonomy分类归档页本身已经自动查询了对应当前分类的文章,如果你不需要特殊的查询规则(比如排序、数量调整),可以直接用主循环输出文章,不需要额外发起WP_Query查询,性能更好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 17:48:21