📅  最后修改于: 2023-12-03 15:06:02.083000             🧑  作者: Mango
在 WordPress 中,Taxonomy(分类法)是将相关帖子归类的方式。在查询相关帖子时,我们通常使用 Tax_Query 类来实现对分类法的查询。
Tax_Query 允许我们根据分类法的层次结构进行查询。例如,我们可以查找具有特定分类或子分类的文章。在本文中,我们将介绍 Tax_Query 的使用方法。
以下是一个基本的 Tax_Query 查询示例,该查询将返回具有 categoryA 和 categoryB 分类的文章。
$tax_query_args = array(
'relation' => 'OR',
array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => 'categoryA'
),
array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => 'categoryB'
)
);
$query_args = array(
'post_type' => 'post',
'tax_query' => $tax_query_args
);
$query = new WP_Query( $query_args );
在此示例中,我们定义了一个名为 $tax_query_args
的数组,其中 relation
定义了 "OR"。这意味着我们要查询具有分类 A 或分类 B 的文章。
然后我们将 $tax_query_args
数组作为参数传递给 $query_args
数组中的 'tax_query'
。最后,我们使用 $query = new WP_Query( $query_args );
执行查询。
使用 Tax_Query,我们可以执行以下比较操作。
=
:等于。!=
:不等于。>
:大于。<
:小于。>=
:大于等于。<=
:小于等于。IN
:在给定的值之中。NOT IN
:不在给定的值之中。以下是一个例子,它将返回具有分类 C、D 和 E 中至少一个分类的文章。
$tax_query_args = array(
'relation' => 'OR',
array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => array( 'categoryC', 'categoryD', 'categoryE' ),
'operator' => 'IN'
)
);
$query_args = array(
'post_type' => 'post',
'tax_query' => $tax_query_args
);
$query = new WP_Query( $query_args );
注意,我们使用了 'operator' => 'IN'
来确保至少一个分类匹配。
我们可以使用 'relation'
参数来定义分类法之间的关系。例如,我们可以查询具有分类A或分类B,以及同时具有分类D和分类E的文章。
$tax_query_args = array(
'relation' => 'AND',
array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => array( 'categoryA', 'categoryB' )
),
array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => array( 'categoryD', 'categoryE' )
)
);
$query_args = array(
'post_type' => 'post',
'tax_query' => $tax_query_args
);
$query = new WP_Query( $query_args );
上述示例中 relation
被设置为 AND
。这意味着我们要查询同时拥有分类A/B 和 D/E 的文章。
Tax_Query 可以让你在 WordPress 中更加精细地查询分类法相关的文章。在上述 Tax_Query 示例中,我们使用了 'taxonomy'
、'field'
、'terms'
和 'operator'
等参数来执行分类法查询。通过根据分类法之间的关系设定 'relation'
参数,我们可以进一步精确定义查询,以满足我们的需求。