# WordPress 如何获得最顶级的自定义分类

- Link: https://www.ixiqin.com/2022/02/19/how-to-get-top-level-tax/
- Published: 2022-02-19T07:52:02+08:00
- Author: 白宦成

文章目录

 [Toggle](https://www.ixiqin.com/2022/02/19/how-to-get-top-level-tax/#)

 * [1. 获取当前文件类型的自定义分类](https://www.ixiqin.com/2022/02/19/how-to-get-top-level-tax/#1_%e8%8e%b7%e5%8f%96%e5%bd%93%e5%89%8d%e6%96%87%e4%bb%b6%e7%b1%bb%e5%9e%8b%e7%9a%84%e8%87%aa%e5%ae%9a%e4%b9%89%e5%88%86%e7%b1%bb)
 * [2.获取分类树](https://www.ixiqin.com/2022/02/19/how-to-get-top-level-tax/#2%e8%8e%b7%e5%8f%96%e5%88%86%e7%b1%bb%e6%a0%91)
 * [3. 提取最后一个元素的 ID](https://www.ixiqin.com/2022/02/19/how-to-get-top-level-tax/#3_%e6%8f%90%e5%8f%96%e6%9c%80%e5%90%8e%e4%b8%80%e4%b8%aa%e5%85%83%e7%b4%a0%e7%9a%84_id)

WordPress 支持设定多级分类，如果你需要在页面中展示最顶级的分类，则需要获取到最顶
级的分类，具体实现的方式如下：

### 1. 获取当前文件类型的自定义分类

使用如下代码获取到自定义分类

    ```php
    $tax = wp_get_post_terms($post->ID,array('part'))
    Code language: PHP (php)
    ```

获得的结果如下

    ```php
    Array
    (
        [0] => WP_Term Object
            (
                [term_id] => 7
                [name] => 目录1
                [slug] => category1
                [term_group] => 0
                [term_taxonomy_id] => 7
                [taxonomy] => part
                [description] => 
                [parent] => 6
                [count] => 2
                [filter] => raw
            )

    )
    Code language: PHP (php)
    ```

这里的 term_id 则代表你设定的自定义分类的 ID

### 2.获取分类树

因为分类是多级的，我们需要找到祖先节点，因此需要用到函数 `get_ancestors` ，执行如下
代码

    ```php
    $tree = get_ancestors($tax[0]->term_id)
    Code language: PHP (php)
    ```

会获得如下结果

    ```php
    Array
    (
        [0] => 6
        [1] => 8
    )
    Code language: PHP (php)
    ```

这个返回结果则是从你当前分类向上查找，查找到最顶级的分类的结果。需要注意的是，这个
数组的最后一个元素才是你最终最顶级的分类。

### 3. 提取最后一个元素的 ID

当你知道了最后一个才是最顶级的分类，只需要使用 `end()` 函数来获取最后一个。

    ```php
    end($tree)
    Code language: PHP (php)
    ```

这样，就能拿到最终目录的 ID，接下来要做的就是在你的界面上展示这些数据。
