我有一个名为“products”的自定义帖子类型CPT有两个自定义分类法(都是分层的);1) “product\\u type”和2)“product\\u provider”。
每个产品都将有一个“product\\u type”和一个“product\\u provider”链接到它。在每个“product\\u type”术语的存档页面上,我输出了一个可过滤的“products”列表,其中一个过滤选项是“by Provider”,它(显然)根据“product\\u Provider”自定义税进行过滤。
我遇到的问题是只输出适用于特定“product\\u type”的“product\\u provider”术语。
EXAMPLE
产品A.产品类型=1,产品提供商=W
产品B.产品类型=1,产品提供商=X
产品C.产品类型=2,产品提供商=Y
产品C.产品类型=2,产品供应商=W
在“product\\u type 1”的存档页上,使用:
$terms = get_terms( array(\'taxonomy\' => \'product_provider\') );
将输出
all “product\\u provider”分类中的术语-W,X,Y。我只需要输出W和X-这是“product\\u provider”中的两个术语,适用于product\\u类型自定义税中的“products”。
我不确定答案是否是;一个更健壮的术语查询,重新构造CPT/分类法以删除“product\\u provider”-只需将每个提供者作为特定“product\\u type”的子类别(尽管这会导致重复某些提供者,因为它们提供多个product\\u type的产品)。
SO网友:Benoti
您可以在参数数组中使用另一个参数,您有很多选择来过滤结果。
您可以添加exclude
, include
使用数组或逗号分隔要显示的术语。
$terms = get_terms( array(
\'taxonomy\' => \'product_provider\',
\'include\'=> array(\'X\', \'Y\')
);
但是,如果结果取决于product\\u类型,则可能需要使用
meta_key
和
meta_value
(产品的)。
当然,如果需要的话,你可以混合所有这些论点。
如果要获取属于产品的术语,需要使用wp_get_object_terms()
.
您将找到所有详细信息get_terms 和wp_get_object_terms
希望有帮助。