自定义属性的作用
织梦CMS的「自定义属性」就是文章 flag 字段,用单个字母标记文章的特殊属性,例如 h 表示头条、c 表示推荐、p 表示图片文章。系统默认提供 7 个属性,但很多时候无法满足业务需求,比如想标记「付费阅读」「VIP专享」「限时活动」等场景,就需要新增自定义属性。
原因分析
1. 默认属性不够用
7 个默认属性(h、c、p、f、s、b、a)覆盖不了所有业务场景,特别是商业化站点。
2. 多维度筛选需求
运营需要按「活动」「优惠」「新品」等维度筛选文章,必须新增对应属性。
3. 前台特殊展示
不同属性的文章在前台用不同颜色或图标标识,提升用户识别效率。
新增步骤
步骤一:规划属性字母
每个属性对应一个字母,必须避开已用的 h、c、p、f、s、b、a。建议选择有含义的字母:
v - VIP专享
l - 限时活动
m - 付费阅读
n - 新品首发
e - 编辑精选
步骤二:数据库新增属性记录
登录 phpMyAdmin 或宝塔数据库,找到 dede_arcatt 表,插入新属性:
INSERT INTO dede_arcatt (att, attname) VALUES
('v', 'VIP专享'),
('l', '限时活动'),
('m', '付费阅读');
步骤三:修改发布页模板
打开 dede/templets/article_add.htm 与 article_edit.htm,找到自定义属性复选框区域,添加新选项:
<label><input type="checkbox" name="flags[]" value="v"> VIP专享[v]</label>
<label><input type="checkbox" name="flags[]" value="l"> 限时活动[l]</label>
<label><input type="checkbox" name="flags[]" value="m"> 付费阅读[m]</label>
步骤四:清理缓存
进入「系统 → 系统维护 → 更新系统缓存」,删除 data/cache/inc_remote_config.php 等缓存文件。
步骤五:测试新属性
发布文章时勾选新属性,确认能正常保存到 flag 字段,并能在 arclist 中通过 flag='v' 调用。
配置示例
调用 VIP 专享文章:
{dede:arclist flag='v' row='10' titlelen='30'}
<li class="vip-item">
<span class="vip-tag">VIP</span>
<a href="[field:arcurl/]">[field:title/]</a>
</li>
{/dede:arclist}
同时调用多个属性(AND 关系):
{dede:arclist flag='v,h' row='10'}
<a href="[field:arcurl/]">[field:title/]</a>
{/dede:arclist}
调用任一属性(OR 关系,用逗号分隔):
{dede:arclist flag='v|m|l' row='10'}
<a href="[field:arcurl/]">[field:title/]</a>
{/dede:arclist}
注意事项
- 新属性字母不能与已有字母重复,否则会冲突。
- 属性字母建议小写,与大写区分(部分模板对大小写敏感)。
- 新增属性后必须修改发布与编辑模板,否则后台无法勾选。
- 静态站点添加属性后需重新生成对应列表页。
- 删除属性前先清空对应文章的 flag 值,避免脏数据。
建议属性数量控制在 15 个以内,过多会增加编辑负担。
建议与展望
自定义属性是织梦内容管理的灵活扩展点,合理规划能让运营更高效。建议在新增前先梳理业务场景,把所有需要的属性列出来统一规划字母分配,避免后期重复添加。同时在前台模板中为每个属性设计专属视觉标识(颜色、图标、徽章),让用户一眼区分内容类型。今天就先盘点一下当前业务需要哪些属性标签,按步骤在测试环境新增一遍,验证无误后应用到生产。