如何将Elementor中自定义的Widget分类置于列表顶部?
解决Elementor自定义Widget分类置顶的问题
Elementor官方文档默认的分类注册参数确实没有提供排序选项,但可以通过钩子函数修改分类的显示顺序,具体操作如下:
使用
elementor/elements/categories_registered钩子
该钩子会在所有Widget分类注册完成后触发,我们可以借助它重新调整分类数组的顺序,将自定义分类移至顶部。示例实现代码
将以下代码添加到主题的functions.php文件或自定义插件中:add_action( 'elementor/elements/categories_registered', 'move_custom_elementor_category_to_top' ); function move_custom_elementor_category_to_top( $elements_manager ) { // 替换为你的自定义分类ID $custom_category_id = 'your-custom-category-id'; // 获取所有已注册的分类列表 $categories = $elements_manager->get_categories(); // 检查自定义分类是否存在 if ( isset( $categories[ $custom_category_id ] ) ) { // 取出目标自定义分类 $custom_category = $categories[ $custom_category_id ]; // 从原数组中删除该分类 unset( $categories[ $custom_category_id ] ); // 重构数组,将自定义分类放在首位 $categories = array( $custom_category_id => $custom_category ) + $categories; // 更新Elementor的分类列表 $elements_manager->set_categories( $categories ); } }代码说明
- 把代码中的
your-custom-category-id替换为你实际注册的分类ID - 代码通过"取出-删除-合并"的逻辑,仅将目标分类移至顶部,不会打乱其他分类的原有顺序
- 把代码中的
内容的提问来源于stack exchange,提问作者siamakDZ
相关产品推荐
相关产品推荐

