DEDECMS添加自定义属性的方法

进入后台——系统——SQL命令行工具——运行SQL命令行:

insert into `dede_arcatt`(sortid,att,attname) values(9,'mn','自定义名称');
alter table `dede_archives` modify `flag` set ('h','c','p','f','s','j','a','b','d') default NULL;

注意:织梦自身有8个自定义属性,所以sortid应该从9开始,不能跟1-8重复;att自定义的调用标记;attname自定义属性的名称;

代码第2行:set ('c','h','p','f','s','j','a','b','mn'),括号中的字母对应已存在的标记符号和您需要添加的标记符号,并按顺序录入,不得改变先后顺序。例如,mn排序第9位,则对应第一行代码中添加的自定义属性“mn”。

 

使用“自定义属性”

后台——模板——默认模板管理——这里找到自己要使用自定义属性的模板

{dede:arclist flag='mn' limit='0,1' titlelen='64'}

<a href='[field:arcurl/]'>[field:title/]</a>

{/dede:arclist} 

 注意:其中flag后写你自己自定义的属性,其他的跟织梦调用标签一样

 

 

 

附:

当用户新增自定义属性代码为多位字符的时候,提交文章后,会出现识别错误。

例如: ID 属性名称 a 首屏 b 推荐 ab 自定义焦点 如果新发布文章时,选择属性为“ab”,文章提交发布成功后,在文章编辑界面,你会发现,属性变成了“a”、“b”、“ab”三个都被选中
检查代码后发现,Dede cms团队在文章编辑页面,做属性轮询时,用了一个正则来匹配:
  1. if(preg_match("#".$trow->att."#",$arcRow['flag'] )) 

 这就是出错原因所在了,知道原因,就好修改了,我们改为:

  1. $flags = explode(',',$arcRow['flag']); 
  2. if(in_array($trow->att,$flags)) 

OK,再测试,没有问题了

你可能感兴趣的:(dedecms)