获取当前页面自定义分类法用于查询自定义 post 类型

Get the current page custom taxonomy use to query custom post type

到目前为止,我有一个名为 position 的自定义分类法,它与特定页面相关联,还有一个名为 People 的自定义 post 类型。我还有一个页面,其中自定义分类法设置为也使用 position 分类法。

我想要做的是获取它,以便我可以查询 People 的自定义 post 类型,以显示具有页面上设置的自定义分类法的条目列表以及 post 类型。

例如,position 的分类法分配了一些项目,例如- 销售、会计等。我有一些自定义 post 类型 People 的条目,例如- John、Mary、Sam 等。在这种情况下,我让 John 和 Mary 设置为使用 Sales 的分类法。

在销售页面上,我将其设置为使用 Sales 的自定义 position 分类法。

我想要得到的是在销售模板页面上获取 position 的自定义分类法,它应该 return and/or Sales 的名称和然后获取该信息并将其传递到查询中以检查 People 自定义 post 类型并从该自定义分类法中提取相关人员。这样的话,在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 ); ?>

好的,所以我最终弄明白了。

为了完成这项工作,您需要从页面获取当前 post ID,将其传递给 get_the_terms,然后构建一个查询来查询自定义 post 输入 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 );
            ?>

这将交叉引用当前页面和自定义 post 类型之间的自定义分类,并将获得分配有特定分类(在本例中为销售)的那些 post 类型。

希望对您有所帮助!