- 修改标签的调用方式和参数(最常见):这是绝大多数用户需要做的,比如修改首页文章列表显示数量、修改标题长度等。
- 修改标签的底层代码(需要PHP开发能力):比如你想修改
{dede:arclist}标签本身的逻辑,增加一个它没有的功能。
下面我将详细说明这两种情况,并提供最常用标签的修改位置。

(图片来源网络,侵删)
修改标签的调用方式和参数(无需编程)
这是最安全、最常用的方法,你只需要在需要显示内容的模板文件(.htm 文件)中找到对应的标签,然后修改它的属性即可。
第一步:找到存放模板的文件夹
DedeCMS的网站模板都存放在 /templets/ 目录下,这个目录通常包含:
/default/:默认模板文件夹,里面又分index.htm(首页),list_*.htm(列表页),article_*.htm(文章页) 等。/plus/:一些独立页面的模板,如/plus/feedback_templet.htm(评论页)。/your_custom_folder/:你自己创建的模板文件夹。
你需要修改哪个页面的内容,就打开对应的模板文件。
第二步:在模板文件中找到并修改标签
打开对应的 .htm 文件,用代码编辑器(如 VS Code, Sublime Text, Notepad++ 等)搜索你想要修改的标签,{dede:arclist}。

(图片来源网络,侵删)
下面是几个最常用标签的修改示例:
示例1:修改首页文章列表 ({dede:arclist})
假设你想修改首页文章列表的显示数量、标题长度和是否有“阅读更多”链接。
原始标签可能长这样:
{dede:arclist row='10' titlelen='40'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
</li>
{/dede:arclist}
修改后:

(图片来源网络,侵删)
{dede:arclist row='20' titlelen='30' infolen='100'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<p>[field:info/]... <a href="[field:arcurl/]">[查看详情]</a></p>
</li>
{/dede:arclist}
修改说明:
row='10'改为row='20':显示的文章数量从10篇增加到20篇,len='40'改为titlelen='30'`:文章标题显示长度从40个字符减少到30个字符。- 增加了
infolen='100':截取文章内容摘要100个字符。 - 在
<li>内部增加了显示摘要和“查看详情”链接的HTML代码。
常用属性:
row:返回文档列表总数。col:分多少列显示(默认为单列),len`:标题长度。infolen简介长度。orderby:排序方式,如click(按点击量),pubdate(按发布日期),id(按文章ID)。channelid:指定频道ID。
示例2:修改网站标题 ({dede:global})
通常在 head 区域,head.htm 文件中。
原始标签可能长这样:
修改后:,以利于SEO。
常用全局变量:
{dede:global.cfg_webname/}:网站名称。{dede:global.cfg_weburl/}:网站首页URL。{dede:global.cfg_powerby/}:版权信息。{dede:global.cfg_adminemail/}:管理员邮箱。
示例3:修改栏目名称 ({dede:field})
栏目名称通常在列表页模板 list_*.htm 或文章页模板 article_*.htm 的标题部分。
原始标签可能长这样:
修改后:
修改说明:
{dede:field.title/}获取的是栏目名称。{dede:field.seotitle/}获取的是栏目的SEO标题(在后台“栏目管理”-“高级选项”里设置),通常更利于搜索引擎优化。
修改标签的底层代码(需要PHP开发能力)
如果你发现默认标签无法满足你的需求,需要修改其核心功能,那么你需要修改PHP文件。
警告: 直接修改核心文件有风险!升级DedeCMS时,你的修改可能会被覆盖,建议修改前先备份文件,并使用“二次开发”的方式(如覆盖文件、修改函数名等)。
找到标签的解析文件
DedeCMS的标签引擎会调用特定的PHP类来解析每个标签,这些类文件通常位于 /include/taglib/ 目录下。
{dede:arclist}对应/include/taglib/arclist.lib.php{dede:channel}对应/include/taglib/channel.lib.php{dede:field}对应/include/taglib/field.lib.php{dede:global}对应/include/taglib/global.lib.php
修改PHP文件
以修改 {dede:arclist} 为例,假设你想给它增加一个 myorder 排序参数。
步骤:
- 打开
/include/taglib/arclist.lib.php文件。 - 找到处理
orderby参数的代码段,通常在一个switch语句中。 - 在
switch语句中增加一个新的case。
原始代码片段可能类似:
// ... 省略其他代码 ...
switch($orderby){
case 'hot':
$ordersql = " ORDER BY arc.click DESC ";
break;
case 'pubdate':
case 'senddate':
$ordersql = " ORDER BY arc.senddate DESC ";
break;
case 'id':
$ordersql = " ORDER BY arc.id DESC ";
break;
// ... 其他case ...
default:
$ordersql = " ORDER BY arc.sortrank DESC ";
}
// ... 省略其他代码 ...
修改后,增加 myorder 选项:
// ... 省略其他代码 ...
switch($orderby){
case 'hot':
$ordersql = " ORDER BY arc.click DESC ";
break;
case 'pubdate':
case 'senddate':
$ordersql = " ORDER BY arc.senddate DESC ";
break;
case 'id':
$ordersql = " ORDER BY arc.id DESC ";
break;
case 'myorder': // 新增的排序方式
$ordersql = " ORDER BY arc.myorder_field DESC "; // 假设你的自定义字段是 myorder_field
break;
// ... 其他case ...
default:
$ordersql = " ORDER BY arc.sortrank DESC ";
}
// ... 省略其他代码 ...
使用: 修改后,你就可以在模板中这样使用了:
{dede:arclist orderby='myorder' ...}
...
{/dede:arclist}
总结与建议
| 修改目标 | 修改位置 | 是否需要编程 | 风险等级 |
|---|---|---|---|
| 修改列表显示数量、标题长度 | /templets/ 下的对应 .htm 模板文件 |
否 | 低 |
| 修改网站标题、版权信息 | /templets/ 下的 head.htm 或全局文件 |
否 | 低 |
| 修改栏目名称、文章标题 | /templets/ 下的 list_*.htm 或 article_*.htm |
否 | 低 |
| 修改标签的核心功能(如增加新参数) | /include/taglib/ 下的对应 .lib.php 文件 |
是 | 高(升级会覆盖) |
给新手的建议:
- 先从修改模板文件开始,这是最安全、最直接的方法。
- 不要害怕修改模板,只要你修改前备份了原始文件,随时可以恢复。
- 学习DedeCMS标签手册,了解每个标签有哪些可用属性,能帮你解决大部分问题。
- 除非必要,否则不要轻易修改核心PHP文件,如果确实需要,请先搜索是否有现成的二次开发方案或插件。
