You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress下Elementor分类选项按字母排序的代码修改方法

Elementor分类网格按字母排序修复方案

你当前的控件配置本身没有排序相关的控制逻辑,乱序问题来自两个环节:一是传入控件的分类选项数组$all_tax_elemetor未做预排序,二是前端渲染分类列表的查询逻辑未指定排序规则,仅修改你贴出的控件定义代码无法解决问题,需要补全两处逻辑:

1. 预排序控件下拉选项

找到生成$all_tax_elemetor变量的代码段,替换为按分类名称升序查询的逻辑,保证下拉选择器里的分类本身按A-Z排列:

// 替换原有生成$all_tax_elemetor的逻辑
$all_tax_elemetor = [];
$tax_terms = get_terms( [
    'taxonomy'   => '你的主题对应分类法标识,例如category、place_category',
    'hide_empty' => false,
    'orderby'    => 'name', // 核心参数:按分类名称排序
    'order'      => 'ASC', // 排序方向:升序(A-Z),要倒序改DESC
] );

if ( ! is_wp_error( $tax_terms ) && ! empty( $tax_terms ) ) {
    foreach ( $tax_terms as $term ) {
        $all_tax_elemetor[ $term->term_id ] = $term->name;
    }
}

你贴出的原有控件定义代码不需要改动,只要保证传入的$all_tax_elemetor是排好序的数组即可。

2. 渲染层强制排序输出

注意:SELECT2多选控件默认会按照用户点击选择的顺序保存选中项ID,就算下拉选项是排序好的,如果用户选择时顺序混乱,最终存的ID顺序也是乱的,必须在渲染输出环节重新排序。

找到该模块的render()渲染方法,在获取用户选中的分类ID后,查询分类时强制指定按名称排序:

// 获取控件保存的选中分类ID
$selected_term_ids = $this->get_settings( 'place_list' );
if ( ! empty( $selected_term_ids ) ) {
    // 查询选中分类时强制按字母序排序
    $list_terms = get_terms( [
        'taxonomy'   => '你的主题对应分类法标识',
        'include'    => $selected_term_ids,
        'orderby'    => 'name',
        'order'      => 'ASC',
        'hide_empty' => false,
    ] );

    // 后续直接循环$list_terms输出分类网格内容即可,此时输出顺序固定为A-Z字母顺序
}

如果需要支持后台手动选择排序/字母排序切换,可以在控件组里额外加一个排序规则选择控件,根据用户选择动态传入orderby和order参数即可。

内容的提问来源于stack exchange,提问作者Oktay Cinpolat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 12:54:17