什么是自定义属性?
自定义属性就是给文章或栏目额外增加一些自定义的字段,用来存储文章栏目信息之外的特殊内容。
默认情况下,织梦CMS的文章只有标题、作者、来源、发布时间、内容等固定字段,如果你的文章需要一些额外的信息,
- 文章:视频链接、下载地址、商品价格、作者简介、相关图集ID、是否置顶、是否推荐等。
- 栏目:栏目简介、自定义模板、外部链接、SEO关键词等。
这时,自定义属性就派上用场了,它相当于为你的文章或栏目“量身定做”了一批新的信息标签。
自定义属性的类型
在织梦后台,自定义属性主要分为两种,设置路径略有不同:
- 文章自定义属性:为单篇文章添加额外信息。
- 栏目自定义属性:为整个栏目添加额外信息。
下面我们以最常用的文章自定义属性为例,进行详细讲解。
文章自定义属性的详细使用教程
步骤 1:添加自定义属性字段
这是最关键的一步,你需要告诉织梦系统,你希望增加哪些字段。
-
登录后台:使用管理员账号登录织梦CMS后台。
-
进入系统设置:在左侧菜单栏中,找到并点击
系统->SQL命令工具。 -
执行SQL语句:在
命令运行文本框中,输入你想要添加的字段的SQL语句,这是最标准、最推荐的方法。SQL语句格式:
ALTER TABLE `dede_archives` ADD `字段名` 字段类型 NOT NULL DEFAULT '默认值';
dede_archives:是存储文章基本信息的表名,请勿修改。字段名:为你自定义的字段起一个名字,建议使用英文,如video_url,price,is_top等。字段类型:常见的有varchar(255)(短文本),text(长文本),int(10)(整数),decimal(10,2)( decimal(10,2)) 等。'默认值':当这个字段没有填写内容时的默认值,0,空字符串 '',N/A等。
【实战示例】
假设我们要为文章增加三个字段:
- 视频链接:一个较长的文本。
- 商品价格:一个带两位小数的数字。
- 是否推荐:一个是/否的选择(用整数0和1表示)。
你可以在
SQL命令工具中依次执行以下三条语句:-- 添加一个视频链接字段 (类型为文本,默认值为空) ALTER TABLE `dede_archives` ADD `video_url` text NOT NULL DEFAULT ''; -- 添加一个商品价格字段 (类型为decimal,默认值为0.00) ALTER TABLE `dede_archives` ADD `price` decimal(10,2) NOT NULL DEFAULT '0.00'; -- 添加一个是否推荐的字段 (类型为整数,默认值为0) ALTER TABLE `dede_archives` ADD `is_recommend` int(11) NOT NULL DEFAULT '0';
执行成功后,这些字段就被添加到数据库里了。
步骤 2:在后台文章编辑界面显示字段
字段添加到数据库后,你还需要让它在后台编辑文章时可见和可编辑。
-
找到模板文件:进入织梦的安装目录,找到文件
/dede/templets/article_edit.htm,这个文件是后台文章编辑页面的模板。 -
编辑模板:用文本编辑器(如VS Code, Notepad++)打开这个文件。
-
添加输入框:在合适的位置(在“ textarea下面,或者在你自定义的选项卡里)添加你刚才创建的字段的HTML输入代码。
【实战示例】
接上面的例子,我们在
摘要后面添加这三个字段。<!-- 找到类似这样的代码块 --> <tr> <td height="24" colspan="2" bgcolor="#f5f5f5"> <strong></strong> <textarea name="description" id="description" style="width:100%; height:50px; font-family:Verdana;"><?php echo $description;?></textarea> </td> </tr> <!-- 在它下面添加你的自定义字段 --> <tr> <td height="24" colspan="2" bgcolor="#f5f5f5"> <strong>视频链接:</strong> <input type="text" name="video_url" id="video_url" value="<?php echo $addRow['video_url']; ?>" style="width:60%;"> </td> </tr> <tr> <td height="24" colspan="2" bgcolor="#f5f5f5"> <strong>商品价格:</strong> <input type="text" name="price" id="price" value="<?php echo $addRow['price']; ?>" style="width:200px;"> </td> </tr> <tr> <td height="24" colspan="2" bgcolor="#f5f5f5"> <strong>是否推荐:</strong> <input type="radio" name="is_recommend" value="1" <?php if($addRow['is_recommend']==1) echo 'checked="checked"'; ?> /> 是 <input type="radio" name="is_recommend" value="0" <?php if($addRow['is_recommend']==0) echo 'checked="checked"'; ?> /> 否 </td> </tr>代码解释:
name="video_url":这个name属性必须和你在数据库里创建的字段名完全一致,织梦通过name来接收提交的数据。value="<?php echo $addRow['video_url']; ?>":这行代码用于在编辑文章时,显示该字段已保存的内容。- 保存并上传修改后的
article_edit.htm文件到服务器。
步骤 3:在前台模板中调用字段
你可以在前台模板文件(如 article_article.htm)中使用这些自定义字段了。
调用语法非常简单:{field:字段名/}
【实战示例】
在 article_article.htm 模板中,你可以这样调用:
<h1>{dede:field.title/}</h1>
<!-- 调用自定义的视频链接 -->
{dede:field.video_url runphp='yes'}
if(@me != '') {
@me = '<div class="video-box"><iframe src="'.@me.'" frameborder="0" allowfullscreen></iframe></div>';
} else {
@me = '';
}
{/dede:field.video_url}
<!-- 调用自定义的价格 -->
<p class="price">价格:<span class="money">{dede:field.price/}</span> 元</p>
<!-- 调用自定义的是否推荐,并做判断 -->
{dede:field.is_recommend runphp='yes'}
if(@me == 1) {
@me = '<span class="tag">推荐</span>';
} else {
@me = '';
}
{/dede:field.is_recommend}
高级用法:runphp='yes'
- 当你需要在模板里对字段值进行逻辑判断(如上面的if/else)时,就需要使用
runphp='yes'。 @me是一个特殊变量,代表当前字段的值,你可以对@me进行PHP操作,操作后的结果会最终显示在页面上。
栏目自定义属性的用法
栏目自定义属性的流程和文章类似,但操作对象是栏目。
-
添加字段:
- 同样使用
系统->SQL命令工具。 - 但这次操作的表是
dede_arctype(栏目表)。 - SQL示例:为栏目增加一个“自定义链接”字段。
ALTER TABLE `dede_arctype` ADD `type_link` varchar(255) NOT NULL DEFAULT '';
- 同样使用
-
显示字段:
- 找到模板文件
/dede/templets/catalog_add.htm(添加栏目) 和/dede/templets/catalog_edit.htm(编辑栏目)。 - 在里面添加HTML输入框,
name属性要和数据库字段名一致。
- 找到模板文件
-
调用字段:
- 在前台模板(如
list_channel.htm,list_article_list.htm等)中调用。 - 调用语法:
{dede:field.字段名/}或{dede:typelink/}(如果字段是链接)。 - 示例:调用栏目的自定义链接。
<a href="{dede:field.type_link/}" target="_blank">访问本栏目的外部链接</a>
- 在前台模板(如
注意事项与最佳实践
- 备份数据库:在执行任何SQL语句之前,务必备份数据库!以防误操作导致数据丢失。
- 字段名规范:字段名请使用英文、数字和下划线,避免使用中文和特殊符号。
- 字段类型选择:根据实际需求选择合适的字段类型,比如价格用
decimal而不是varchar或int,能避免很多精度问题。 - 权限问题:确保你的web服务器对
/dede/目录下的文件有写入权限,否则无法保存修改的模板文件。 - 不要修改核心文件:除了模板文件,尽量不要修改织梦的核心PHP文件,否则升级时会非常麻烦。
- 字段数量:虽然可以添加很多字段,但也要适度,过多的自定义字段可能会影响数据库性能和代码的可读性。
自定义属性是织梦CMS扩展性的核心体现,掌握它的使用方法,你就可以突破默认模板的限制,构建出功能更丰富、更符合特定业务需求的网站。
流程回顾:
- 数据库:用
SQL命令工具ALTER TABLE添加字段。 - 后台:修改
article_edit.htm等模板文件,添加可编辑的输入框。 - 前台:在模板文件中使用
{field:字段名/}和runphp调用并显示数据。
