代码之家  ›  专栏  ›  技术社区  ›  ultraloveninja

获取用于查询自定义文章类型的当前页面自定义分类

  •  0
  • ultraloveninja  · 技术社区  · 6 年前

    到目前为止,我已经注册了一个自定义分类法,名为 position 与特定页面以及名为 People . 我还有一个页面,它将自定义分类设置为使用 还有分类学。

    我要做的是得到它,这样我就可以查询 显示具有在页面上设置的自定义分类法以及文章类型的条目列表。

    有一些项目分配给它,如销售,会计等,我有一些自定义的职位类型的条目 e、 约翰,玛丽,山姆,等等。我已经让约翰和玛丽开始使用 Sales ,在本例中。

    位置 销售额 .

    我想得到的是 在Sales template页上,其中应返回 然后获取该信息并将其传递到查询中,以与 自定义post类型并从该自定义分类中提取关联的人员。在这种情况下,在销售页面上应该可以拉到约翰和玛丽两个人。

    到目前为止,我在销售模板页面上有:

    <?php $tax = get_terms( array( 'taxonomy' => 'position' ) ); ?>
    

    这给了我术语的数组,但是我如何获取页面上设置的相关分类名称的名称,然后将其传递给查询以获取人员?

    get_terms 一切 只需要为特定页面设置一套分类法,将其分配给一个变量,然后将其用于如下查询:

    <?php $args = array( 'post_type' => 'people', 'taxonomy' => $tax);
    $loop = new WP_Query( $args ); ?>
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   ultraloveninja    6 年前

    好吧,我终于弄明白了。

    为了使这项工作,您需要从页面中获取当前post ID,并将其传递出去 get_the_terms 然后构造一个查询,用 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类型(在本例中为Sales)。