如何在Elementor中为自定义小部件组添加新的小部件分类?
解决Elementor自定义小部件分类不生效的问题
核心问题说明
你的分类注册代码本身无语法错误,但必须将目标自定义小部件明确关联到新建分类——Elementor只会显示包含已激活小部件的分类,这是你看不到分类的关键原因。同时需确认代码放置位置(主题functions.php或自定义插件)、文本域替换为你项目的实际值。
完整解决步骤
1. 优化分类注册代码
你的基础代码可保留,建议替换为Elementor兼容的内置图标,提升稳定性:
function add_elementor_widget_categories( $elements_manager ) { // 注册第一个自定义分类 $elements_manager->add_category( 'first-category', [ 'title' => esc_html__( '我的自定义分类1', 'your-project-textdomain' ), 'icon' => 'eicon-star', // 使用Elementor内置图标 ] ); // 注册第二个自定义分类 $elements_manager->add_category( 'second-category', [ 'title' => esc_html__( '我的自定义分类2', 'your-project-textdomain' ), 'icon' => 'eicon-heart', ] ); } add_action( 'elementor/elements/categories_registered', 'add_elementor_widget_categories' );
2. 将指定小部件关联到分类
找到你的自定义小部件类代码,新增get_categories()方法,指定该小部件所属分类:
class Your_Target_Widget extends \Elementor\Widget_Base { // ... 小部件原有代码(构造、渲染等) ... // 绑定到目标分类 public function get_categories() { // 关联到第一个自定义分类,需修改时替换为对应slug即可 return [ 'first-category' ]; } // ... 小部件原有代码 ... }
若要将其他小部件放到第二个分类,只需把返回值改为return [ 'second-category' ];。
3. 验证生效
保存代码后刷新Elementor编辑器:
- 左侧面板会显示你新建的自定义分类
- 目标小部件将出现在指定分类下
常见排查点
- 若分类仍不显示:检查自定义小部件是否通过
elementor/widgets/widgets_registered动作正确注册 - 图标不显示:避免使用旧版Font Awesome图标,优先用Elementor内置图标(前缀
eicon-)
内容的提问来源于stack exchange,提问作者Yagyesh Sharma
相关产品推荐
相关产品推荐

