如何在AEM Sites中为Create按钮新增自定义li元素
AEM Sites Create按钮添加自定义标签实现方案
AEM Sites管理控制台的UI是基于Granite UI组件动态渲染生成的,没有独立的静态HTML文件可供直接编辑,你需要通过AEM官方的资源叠加+客户端库扩展机制实现需求,具体操作如下:
实现步骤
- 确认扩展点位:Sites界面Create按钮的下拉菜单对应的JCR节点路径为
/libs/wcm/core/content/sites/jcr:content/actions/creation,严禁直接修改/libs目录下的节点,所有自定义修改需在/apps目录下做资源叠加,AEM会优先加载/apps下的同路径节点配置。 - 新增自定义菜单项节点:在你的项目ui.apps模块中创建路径
/apps/wcm/core/content/sites/jcr:content/actions/creation/customItem(customItem替换为你自定义的节点名),节点类型设为nt:unstructured,配置核心属性:sling:resourceType:granite/ui/components/coral/foundation/collection/itemjcr:title: 你要展示的菜单项文本rel: 自定义事件标识,用于后续绑定交互逻辑icon(可选):Coral UI内置图标名称
- 绑定自定义交互逻辑(可选):如果你的自定义li需要特殊点击逻辑,创建对应的客户端库(Clientlib),将客户端库的
categories属性添加apps.wcm.core.sites.admin,该类别会自动注入到Sites管理界面,JS示例代码如下:
(function(document, $) { $(document).on("click", "coral-actionbar-item [rel='你的自定义rel值']", function(e) { e.preventDefault(); // 此处编写你的自定义逻辑 }); })(document, Granite.$);
- 部署验证:将ui.apps模块打包部署到AEM实例,刷新Sites管理页面,点击Create按钮即可看到你新增的自定义li菜单项。
注意事项
所有对AEM原生控制台的修改都必须通过
/apps目录叠加的方式实现,/libs目录下的内容会在AEM版本升级、服务包安装时被覆盖,直接修改会导致自定义内容丢失。
内容的提问来源于stack exchange,提问作者halaajin
相关产品推荐
相关产品推荐

