织梦单页模板如何正确调用?

99ANYc3cd6
预计阅读时长 10 分钟
位置: 首页 织梦建站 正文

织梦CMS(DedeCMS)在制作单页模板(如“关于我们”、“联系方式”、“企业介绍”等)时,最常遇到的问题通常集中在调用自定义模型调用或者单页文档调用上。

织梦单页模板调用问题
(图片来源网络,侵删)

为了最准确地解决你的问题,我将织梦单页模板中最常见的三种实现方式及调用标签整理如下,你可以根据你的实际情况选择对应的方法:


使用“单页文档”管理(最正规、最常用)

这是织梦自带的功能,适合纯文本或带有固定排版的内容页。

创建步骤:

  • 后台路径: 核心 -> 频道模型 -> 单页文档管理 -> 增加一个页面
  • 填写页面标题(如“关于我们”),并在内容编辑框里输入内容。
  • 关键点: 生成HTML时,会保存为一个独立的物理文件(如 /abouts/us.html)。

模板调用标签: 在单页文档的模板(通常是 templets/plus/ 目录下的文件)中,直接使用以下标签:

织梦单页模板调用问题
(图片来源网络,侵删)
{dede:field name='title' /} <!-- 调用单页标题 -->
{dede:field name='body' /} <!-- 调用单页正文内容 -->

⚠️ 常见报错与解决: 如果你在 {dede:field name='body' /} 处发现内容不显示,或者报错,请检查:

  • 是否在后台生成了该HTML文件?
  • 你的模板文件路径在后台“单页文档管理”中是否填写正确?

使用“普通栏目”的“栏目内容”(最灵活)

很多时候,我们希望单页也能套用网站的头尾模板(如 head.htmfooter.htm),这时候可以通过新建一个普通栏目来实现。

创建步骤:

  • 后台路径: 核心 -> 网站栏目管理 -> 增加顶级栏目
  • 栏目属性选择: 最终列表栏目(或者外部链接,但这里选列表栏目)。
  • (高级选项里)编辑框中输入你的单页文字内容。
  • 关键设置: 勾选下方的 替代列表内容”(如果不勾选,前台可能不会显示你写的单页内容)。

模板调用标签: 你需要为这个栏目指定一个列表模板(如 list_about.htm),在这个模板里这样调用:

织梦单页模板调用问题
(图片来源网络,侵删)
{dede:field.content/}  <!-- 调用你在后台“栏目内容”里填写的文字 -->

在首页/列表页调用“单页”的内容(重点)

很多时候,开发者问的“单页调用问题”是指:我想在网站首页的某个区块,直接调出“关于我们”这个单页的内容,该怎么做?

这需要用到织梦的 channelartlisttype 标签,必须知道该单页对应的栏目ID(TypeID)

情况 A:调用指定ID的单页栏目内容(推荐) 假设“关于我们”的栏目ID是 1

{dede:type typeid='1'}
    <a href="[field:typelink /]">[field:typename /]</a> <!-- 标题和链接 -->
    <div class="content">
        [field:content/] <!-- 调用栏目内容(单页内容) -->
    </div>
{/dede:type}

情况 B:使用 SQL 语句万能调用 如果上面的标签不生效,或者你调用的是“单页文档管理”里的内容,可以使用SQL标签直接读取:

{dede:sql sql="Select content,typename from dede_arctype where id=1"}
    <h2>[field:typename/]</h2>
    <div>
        [field:content function='cn_substr(html2text(@me),500)'/] <!-- 剥离HTML标签并截取500字符 -->
    </div>
{/dede:sql}

💡 织梦单页开发中常见的 4 个“坑”:

  1. 图片路径错误: 在单页内容里上传图片后,前台显示破图,通常是因为你在后台添加内容时,编辑器里的图片路径变成了相对路径。
    • 解决: 在后台 -> 系统设置 -> 核心设置中,找到“是否支持多站点”,开启或关闭尝试一下(通常开启状态下,附件会带有域名绝对路径)。
  2. 单页模板没有继承头部尾部: 如果你的单页看起来很简陋,是因为没有加载全站通用的头尾。
    • 解决: 在你的单页模板代码最上面加 {dede:include filename="head.htm"/},最下面加 {dede:include filename="footer.htm"/}
  3. 自定义字段不显示: 如果你在单页栏目里增加了“自定义字段”,使用 {dede:field.字段名/} 却不显示。
    • 解决: 必须要在后台的“频道模型管理”里,为该栏目所属的模型增加相应的字段,并在前台标签中加上 addfields='你的字段名' channelid='模型ID'
  4. 更新缓存: 任何模板或后台内容的修改,如果前台没反应,第一步永远是去后台点击 “生成” -> “更新系统缓存”,然后再重新生成HTML。

你的具体问题是什么呢? 如果你能提供以下信息,我可以给你提供精确的代码:

  1. 你是在首页调用单页,还是在做单页本身的模板
  2. 你的单页是在后台的“单页文档管理”里建的,还是在“栏目管理”里建的?
  3. 你目前使用了什么标签?遇到了什么具体现象(不显示/报错/排版错乱)?
-- 展开阅读全文 --
头像
谭浩强的c语言入门 pdf
« 上一篇 昨天
织梦栏目调用数量限制,如何突破?
下一篇 » 昨天

相关文章

取消
微信二维码
支付宝二维码

目录[+]