WordPress 中的 Tax Query 是什么?
在 WordPress 中构建自定义内容筛选时——无论是博客、产品目录还是服务目录——WP_Query 中的 tax_query 参数都是最重要的工具之一。它允许开发者根据特定的 taxonomy terms 检索 posts、pages 或 custom post types。
WordPress 中的 Taxonomies 是什么?
WordPress 中的 Taxonomies 是对内容进行分组的方式。WordPress 自带两种默认 taxonomies:
- category
- post_tag
但开发者也可以创建自定义 taxonomies,例如:
- brand
- region
- product_type
- skill_level
每个 taxonomy 都包含 terms——例如,region taxonomy 可能包括 europe、asia 或 us 等 terms。
什么是 Tax Query?
tax query 是传递给 WP_Query 的条件数组,它告诉 WordPress 只检索匹配特定 taxonomy terms 的内容。
使用场景包括:
- 显示来自特定 category 的 blog posts。
- 显示按属性筛选的 products。
- 为搜索或 archives 创建动态筛选器。
简单示例:按 Category 筛选
$args = array( 'post_type' => 'post', 'tax_query' => array( array( 'taxonomy' => 'category', 'field' => 'slug', 'terms' => 'news', ), ), ); $query = new WP_Query($args);
这将返回 news category 中的所有 posts。
可以使用的 Operators
WordPress 在 tax queries 中支持多个 operators:
- IN — 匹配任意一个 terms(默认)
- NOT IN — 排除这些 terms
- AND — 必须匹配所有 terms
- EXISTS / NOT EXISTS — 检查某个 taxonomy 是否已设置
高级示例:多个条件
你可以组合多个 taxonomy filters:
$args = array( 'post_type' => 'product', 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'product_type', 'field' => 'slug', 'terms' => 'hosting', ), array( 'taxonomy' => 'region', 'field' => 'slug', 'terms' => array('europe', 'us'), 'operator' => 'IN', ), ), );
这将返回类型为 hosting 且位于 Europe 或 US 区域的 products。
实际用途
tax queries 在真实的 WordPress 项目中的一些常见用途:
- 房地产网站按 property type 和 location 筛选 listings。
- 招聘网站按 department 和 seniority 显示 jobs。
- WooCommerce 商店按 brand、color 或 availability 筛选 products。
总结
WordPress 中的 tax_query 参数使开发者能够构建动态且相关的内容展示。无论你是在创建筛选后的 product grid、search page 还是 custom archive,tax queries 都能让你根据已定义的 taxonomy 设置,精细控制向用户显示的内容。想进一步提升?将 tax queries 与 meta queries 或 search parameters 结合起来,可实现更强大的筛选。


