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

在Craft CMS的CKEditor配置中为列表添加自定义类

解决Craft CMS中CKEditor自动为列表添加自定义类的问题

问题分析

你之前的配置无效,是因为CKEditor 5中列表类的配置逻辑和普通元素不同,需要用到ListProperties插件,并且使用正确的defaultProperties配置项,而非旧版的list.options写法。

具体解决方案

1. 启用ListProperties插件

在Craft CMS的CKEditor字段设置中:

  • 进入「设置」→「字段」,找到你的CKEditor字段并编辑
  • 切换到「编辑器配置」标签页,选择「自定义」配置
  • 在「插件」列表里找到ListProperties并勾选启用(这个插件是控制列表属性的核心)

2. 添加自定义配置

在「自定义配置」的文本框中,填入以下JSON配置,设置无序列表和有序列表的默认类:

{
  "list": {
    "defaultProperties": {
      "bulletedList": {
        "class": "class-ul"
      },
      "numberedList": {
        "class": "class-ol"
      }
    }
  }
}

这段配置会让编辑器在创建或编辑列表时,自动给<ul>加上class-ul类,给<ol>加上class-ol类。

3. 确保HTML净化允许列表带class属性

Craft默认的HTML净化规则可能会移除列表标签的class,需要调整:

  • 打开config/general.php文件
  • 修改allowableTags配置,确保<ul>和<ol>允许携带class属性:
'allowableTags' => '<p><br><strong><em><ul class><ol class><li>...其他你需要的标签',

如果你不想手动维护标签列表,也可以在CKEditor字段的「HTML净化」选项中选择「允许所有HTML」(注意:这种方式安全性较低,仅适用于信任内容编辑者的场景)。

验证效果

配置完成后,回到编辑器创建一个无序列表,切换到「源代码」视图,就能看到生成的HTML已经自动带上了自定义类:

<ul class="class-ul">
   <li>entry 1</li>
   <li>entry 2</li>
   <li>entry 3</li>
</ul>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 21:42:39