到目前为止,我有一个注册的名为position
的自定义分类法,它与特定页面相关联,还有一个自定义的帖子类型People
。我还有一个页面,该页面的自定义分类法也设置为也使用position
分类法。
我想做的就是获取它,以便我可以查询People
的自定义帖子类型,以显示具有在页面上设置的自定义分类法以及帖子类型的条目列表。
例如,position
的分类法已分配了一些项目,例如-销售,会计等。我有一些自定义帖子类型People
的条目,例如-John,Mary,Sam等。在这种情况下,我让John和Mary设置为使用Sales
的分类法。
在“销售”页面上,我设置为使用position
的自定义Sales
分类法。
我要获取的是在“销售”模板页面上获得position
的自定义分类法,该分类法应返回Sales
的名称和/或子词段,然后获取该信息并将其传递给查询以检查People
自定义帖子类型并从该自定义分类法中提取相关人员。在这种情况下,应该可以在“销售”页面上拉开约翰和玛丽的两个人。
到目前为止,我在“销售”模板页面上有此标签:
<?php $tax = get_terms( array( 'taxonomy' => 'position' ) ); ?>
这给了我一系列的术语,但是如何获得在页面上设置的相关分类法名称的名称,然后将其传递给查询以获取人员呢?
就像我使用get_terms
一样,它为我提供了所有内容,并且只需要针对该特定页面的一组分类法即可,将其分配给变量,然后将其用于查询像这样:
<?php $args = array( 'post_type' => 'people', 'taxonomy' => $tax);
$loop = new WP_Query( $args ); ?>
答案 0 :(得分:0)
好,所以我终于明白了。
为了完成这项工作,您需要从页面获取当前的帖子ID,将其传递给get_the_terms
,然后构造一个查询以使用tax_query
查询自定义帖子类型,然后将其传递到tax_query
数组中:
<?php
$id = get_post($post->ID);
$tax = get_the_terms($id, 'position');
$args = array(
'post_type' => 'people',
'tax_query' => array(
array(
'taxonomy' => 'position',
'field' => 'slug',
'terms' => $tax[0]->slug,
),
),
);
$loop = new WP_Query( $args );
?>
这将在当前页面和自定义帖子类型之间交叉引用自定义分类,并将获得分配有特定分类(在本例中为Sales)的那些帖子类型。
希望这会有所帮助!