繁体   English   中英

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

[英]Get the current page custom taxonomy use to query custom post type

到目前为止,我有一个自定义分类法,该分类法被注册为与特定页面相关联的称为position ,以及一个名为People的自定义帖子类型。 我还有一个页面,该页面已将自定义分类法设置为也使用position分类法。

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

例如,分类学position分配了一些项目,例如: -销售,会计,等我有自定义职位类型的某些条目People如-约翰,玛丽,山姆等我有约翰和玛丽设为在这种情况下,请使用Sales的分类法。

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

我想要得到的是获得的自定义分类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 ); ?>

好的,我最终弄清楚了。

为了完成这项工作,您需要从页面获取当前的帖子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)分配的那些帖子类型。

希望这可以帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM