WordPress 中的 Tax Query 是什么?

热门:
升级您的服务器配置! 申请 AVA 并使用 立减 15%
使用优惠码:

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 结合起来,可实现更强大的筛选。