织梦自定义属性如何新增

自定义属性的作用

织梦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.htmarticle_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 个以内,过多会增加编辑负担。

建议与展望

自定义属性是织梦内容管理的灵活扩展点,合理规划能让运营更高效。建议在新增前先梳理业务场景,把所有需要的属性列出来统一规划字母分配,避免后期重复添加。同时在前台模板中为每个属性设计专属视觉标识(颜色、图标、徽章),让用户一眼区分内容类型。今天就先盘点一下当前业务需要哪些属性标签,按步骤在测试环境新增一遍,验证无误后应用到生产。