# 开发者用法

- 原文链接：https://www.xintheme.com/docs/xintheme-term-order/developer-api
- 发布日期：2026-06-24
- 更新时间：2026-06-24
- 作者：大胡子 | XinTheme

## 摘要

显式按插件顺序获取分类 $terms = get_terms(array( &#039;taxonomy&#039; =&gt; &#039;category&#039;, &#039;orderby&#039; =&amp;g...

## 正文

显式按插件顺序获取分类
-----------

```
$terms = get_terms(array(
    'taxonomy' => 'category',
    'orderby'  => 'xintheme_term_order',
));
```

跳过插件排序
------

```
$terms = get_terms(array(
    'taxonomy' => 'category',
    'ignore_xintheme_term_order' => true,
));
```

当某个查询需要保持 WordPress 默认排序，或由主题、插件自行控制排序时，可以传入 `ignore_xintheme_term_order => true`。

Hooks 与扩展
---------

### 跳过某些查询的排序

通过 `xintheme_term_order/ignore` 可以让指定查询跳过插件排序。

```
add_filter('xintheme_term_order/ignore', function($ignore, $orderby, $args) {
    if (!empty($args['taxonomy']) && in_array('your_taxonomy', (array) $args['taxonomy'], true)) {
        return true;
    }

    return $ignore;
}, 10, 3);
```

### 排序更新后执行逻辑

排序值发生变化并保存后，会触发 `xintheme_term_order/updated`。

```
add_action('xintheme_term_order/updated', function() {
    // 排序保存后执行自定义逻辑。
});
```

数据存储
----

插件使用 term meta 保存排序值，meta key 为：

```
_xintheme_term_order
```

排序值为从 1 开始的整数。保存时插件只更新排序值发生变化的分类项，减少不必要的数据库写入。

插件不会修改 `wp_terms` 表结构，也不会新增自定义数据表。