分类拖拽排序插件

开发者用法

显式按插件顺序获取分类

$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 表结构,也不会新增自定义数据表。

这页内容对你有帮助吗?