织梦自定义宏标签,模板开发技巧:织梦自定义宏标签开发
织梦自定义宏标签,简单说就是把一段常用模板代码封装成一个可重复调用的标签,避免在多个模板里反复复制。
它适合需要在首页、列表页、内容页复用同一段 HTML 的站长。
本文按零基础可操作的方式,讲清宏标签的创建位置、调用写法、参数传递和报错排查,读完你能自己封装一个宏并在模板里正常输出。
适用场景与前置准备
当同一段模板代码出现在三个以上文件里,或者你想让非技术人员通过标签调用固定区块时,就适合用自定义宏标签。
比如统一页头、广告位、固定推荐位,都可以封装成宏。
操作前请确认环境:
- 织梦程序已正常安装,后台能访问。
- 你有网站根目录和模板目录的编辑权限,能通过宝塔面板文件管理或 SFTP 修改文件。
- 建议先在本地或测试站操作,改模板前备份
/templets/目录和数据库。
织梦自定义宏标签的配置入口通常在后台的“模板”相关菜单里,不同版本菜单名称可能略有差异,以你后台实际显示为准。
核心文件一般位于网站根目录的 include/ 与模板目录 templets/ 下。
在后台创建宏标签
登录织梦后台,找到模板管理中的宏标签或自定义标签管理入口,点击新增。
需要填写几项关键内容:
- 标签名称:只用于后台识别,建议用英文,例如
my_header。 - 标签说明:写清用途,方便以后维护。
- 标签内容:填入你要复用的模板代码,支持织梦的普通标签和 HTML。
保存后,系统会生成对应的宏标签调用名。
如果后台没有可视化入口,也可以手动在模板目录下创建宏文件,路径一般是 templets/你的模板目录/ 下的宏标签目录,具体以程序实际结构为准。
手动创建时,文件内容直接写模板片段即可,不要包裹 PHP 开始结束标记。
保存后用 UTF-8 无 BOM 编码,避免页面顶部出现空白或乱码。
在模板中调用并传参
创建完成后,在模板文件里用宏标签语法调用。
常见写法是:
{dede:mytag name='my_header'/}
如果宏需要接收参数,可在调用时传入,宏内容里用对应变量接收:
{dede:mytag name='my_block' title='推荐阅读' limit='5'/}
关键点:参数名要和宏内部使用的变量名一致,否则宏里取不到值,输出会是空的。
改完模板后,到后台“生成”菜单更新对应栏目或首页的静态页,再刷新前台查看结果。
验证是否生效,可以看前台对应位置是否出现宏里的内容。
如果没出现,先确认模板文件保存成功、后台已重新生成,再看下一步排查。
常见报错与避坑
宏标签不输出,多数不是程序坏了,而是下面几个原因:
- 标签名拼写不一致,后台叫
my_header,模板写成myhead。 - 宏内容里用了未闭合的 HTML 标签,导致后面模板结构错乱。
- 文件编码带 BOM,页面顶部多出空白行。
- 改了模板但没重新生成静态页,前台还是旧缓存。
- 参数传了但宏里变量名写错,取不到值。
避坑建议:每次只改一个宏,改完立即生成并刷新验证,不要一次改多个再一起排查。
涉及数据库字段或系统标签的宏,先查官方文档确认标签是否支持,不要凭猜测写。
效果验证与维护建议
验证时打开前台对应页面,右键查看源代码,确认宏输出的 HTML 出现在预期位置。
如果宏里有动态数据,换一个栏目或内容页再测一次,确认参数传递正常。
维护上建议给每个宏写清楚注释和用途,宏名称保持统一命名习惯。
宏内容尽量只放展示代码,不要塞入复杂逻辑,逻辑部分交给织梦本身的数据标签处理。
这样后续换模板或升级时,排查成本会低很多。
常见疑问
宏标签和普通模板标签有什么区别?
宏标签是你自己封装的复用片段,普通标签是系统内置的数据调用标签,两者可以嵌套使用。
宏标签能调用数据库吗?
宏本身只是模板片段,数据调用要靠织梦里已有的数据标签,把数据标签写进宏内容即可。
修改宏后前台没变化怎么办?
先重新生成静态页,再清浏览器缓存,最后检查模板文件是否保存到了正确目录。
宏标签可以跨模板目录使用吗?
通常和当前模板目录绑定,换模板时需要把宏文件一起迁移,具体以程序加载规则为准。
如果你正在处理织梦自定义宏标签,建议先按本文步骤完整执行,再根据自己的模板结构做微调;
遇到异常时优先回看避坑部分,从标签名、编码和生成缓存三处入手排查。