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

寻求Umbraco内容页面添加自定义标签页的插件开发文档

在Umbraco内容页面自动添加自定义标签页的实现方案

刚好我之前做过类似的Umbraco插件开发,给你整理一套能自动添加自定义标签页的完整方案,亲测有效:

核心思路

要实现插件安装后自动给内容页面(后台编辑节点时的顶部标签)添加自定义标签,我们需要利用Umbraco的通知系统(Notification System),拦截内容编辑器的渲染事件,在事件中注入我们的自定义标签配置。同时通过Umbraco的Composer机制,让插件启动时自动注册这个事件处理器。

具体实现步骤

1. 创建事件处理器(Notification Handler)

这个类负责拦截内容编辑器的渲染通知,并添加自定义标签:

using Umbraco.Cms.Core.Models.Editors;
using Umbraco.Cms.Core.Notifications;

public class CustomTabNotificationHandler : INotificationHandler<ContentEditorNotification>
{
    public void Handle(ContentEditorNotification notification)
    {
        // 定义自定义标签:参数分别是别名、显示名称、排序值(值越大越靠后)
        var customTab = new ContentTab("customContentTab", "我的自定义标签", 100);

        // 可以指定仅给特定文档类型添加标签,比如判断文档类型别名
        if (notification.Content.ContentType.Alias.Equals("Article", StringComparison.OrdinalIgnoreCase))
        {
            notification.Tabs.Add(customTab);
        }
        // 如果要给所有内容节点加标签,直接去掉if判断即可
        // notification.Tabs.Add(customTab);

        // (可选)给标签页添加属性组和属性
        // 如果你需要在这个标签页里展示自定义属性,可以在这里创建属性组并添加属性
        // var customPropertyGroup = new PropertyGroup("customPropertyGroup", "自定义属性组");
        // customTab.PropertyGroups.Add(customPropertyGroup);
        // 后续可以通过Umbraco的属性编辑器API添加具体属性
    }
}

2. 创建Composer注册事件处理器

Composer是Umbraco的启动注册机制,用来把我们的事件处理器注册到系统中:

using Umbraco.Cms.Core.Composing;
using Umbraco.Cms.Core.Notifications;

public class CustomTabComposer : IComposer
{
    public void Compose(IUmbracoBuilder builder)
    {
        // 注册我们的通知处理器
        builder.AddNotificationHandler<ContentEditorNotification, CustomTabNotificationHandler>();
    }
}

3. 打包插件并安装

把上述代码放到你的Umbraco插件类库项目中,确保引用了正确的Umbraco核心NuGet包(比如Umbraco.Cms.Core),然后打包成NuGet包或者本地插件包。当你把插件安装到Umbraco系统后,Umbraco会自动发现并执行Composer,启动后就会在指定的内容页面看到自定义标签页了。

注意事项

  • 排序值设置:Umbraco默认标签的排序值一般是0、10、20递增,设置较大的值(比如100)可以让你的自定义标签显示在最末尾。
  • 文档类型过滤:通过notification.Content.ContentType.Alias可以精准控制给哪些文档类型添加标签,避免全局添加带来的干扰。
  • 自定义内容展示:如果需要在标签页里展示非属性的自定义界面(比如统计数据、外部工具集成),可以结合Umbraco的Content App机制,或者开发自定义Property Editor嵌入到标签页的属性组中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:44:38