到目前为止,我有一个已注册的自定义分类法,该分类法position
与特定页面以及名为People
. 我还有一个页面,其中自定义分类法也设置为使用position
分类法。
我想要做的是获取它,以便我可以查询自定义帖子类型People
以显示具有在页面上设置的自定义分类法以及帖子类型的条目列表。
例如,分类法position
有一些分配给它的项目,例如 - 销售、会计等。我有一些自定义帖子类型的条目,People
例如 - 约翰、玛丽、山姆等。我让约翰和玛丽设置为使用的分类法Sales
,在这种情况下。
销售的页面,我已经将它设置为使用自定义position
的分类Sales
。
我想要得到的是position
在 Sales 模板页面上获取自定义分类法,它应该返回名称和/或 slug,Sales
然后获取该信息并将其传递到查询中以检查People
自定义帖子类型并提取相关联来自该自定义分类法的人。在这种情况下,在 Sales 页面上,它应该能够拉出 John 和 Mary 两个人。
到目前为止,我在销售模板页面上有这个:
<?php $tax = get_terms( array( 'taxonomy' => 'position' ) ); ?>
这为我提供了术语数组,但如何获取页面上设置的关联分类法名称的名称,然后将其传递给查询以获取人员?
看起来如果我使用get_terms
它给了我一切,只需要一个特定页面的一组分类法,将它分配给一个变量,然后将它用于这样的查询:
<?php $args = array( 'post_type' => 'people', 'taxonomy' => $tax);
$loop = new WP_Query( $args ); ?>
好的,所以我最终弄明白了。
为了完成这项工作,您需要从页面获取当前帖子 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)。
希望这可以帮助!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句