dede如何调用文档标题?

99ANYc3cd6
预计阅读时长 13 分钟
位置: 首页 DEDE建站 正文

{dede:field.title/}

无论在什么场景下,调用当前文档(文章、栏目等)的标题,最核心、最常用的标签都是 {dede:field.title/}

这个标签会输出当前页面所对应文档的完整标题。


在不同页面模板中的调用方法

{dede:field.title/} 的使用会根据你所在的页面模板(文章页、列表页、首页等)而有所不同。

页 (article_article.htm)

这是最常见的用法,在文章内容页,{dede:field.title/} 直接调用当前文章的标题。

示例:位置,<h1> 标签中,可以这样写:

<h1>{dede:field.title/}</h1>

效果: 如果你打开的是一篇标题为“DedeCMS标题调用方法详解”的文章,那么页面上就会显示 <h1>DedeCMS标题调用方法详解</h1>

在栏目列表页 (list_*.htm)

在栏目列表页,{dede:field.title/} 调用的是当前栏目的名称,而不是列表中任何一篇文章的标题。

示例: 在列表页的面包屑导航或页面标题中,可以这样使用:

<h2>栏目:{dede:field.title/}</h2>

效果: 如果你在“技术教程”栏目下,页面就会显示 <h2>栏目:技术教程</h2>

在首页 (index.htm)

在首页模板中直接使用 {dede:field.title/},它通常调用的是网站后台“系统设置” -> “系统基本参数” -> “站点信息”中的“站点名称”

示例: 在首页的 <title> 标签中:

效果: 假设站点名称是“我的DedeCMS网站”,那么首页标题就会显示“我的DedeCMS网站 - 副标题”。


常用属性和技巧

仅仅使用 {dede:field.title/} 可能无法满足所有需求,DedeCMS标签支持属性来修改输出。

function 属性:对标题进行处理

这是最强大的属性,可以对标题进行裁剪、过滤HTML标签等操作。

示例1:截取标题(适用于列表页标题显示)

在列表页循环中,你可能不希望显示完整的超长标题,可以在 {dede:arclist} 标签内使用 function='html2text(@me)' 先过滤掉HTML标签,再用 cn_substr(@me, 20) 截取前20个字符。

{dede:arclist titlelen='50' row='10'}
    <li>
        <a href="[field:arcurl/]">[field:title function='cn_substr(html2text(@me), 20)'/]...</a>
    </li>
{/dede:arclist}
  • html2text(@me): 将标题中的HTML标签(如 <b>, <i>)纯文本化。
  • cn_substr(@me, 20): 从处理后的文本中截取前20个字符。
  • 手动添加省略号。

示例2:去除标题中的特殊字符 里会包含一些你不希望显示的字符,可以用 str_replace 函数替换掉。

{dede:field.title function='str_replace("特殊字符", "", @me)'/}

maxlength 属性:直接截取标题

这是 function='cn_substr(@me, N)' 的简写形式,非常方便。

示例: 在文章页调用标题,但最多只显示30个字符。

<h1>{dede:field.title maxlength='30'/}</h1>

注意: maxlength 不会过滤HTML标签,如果标题本身有HTML标签,截断可能会导致标签错乱,所以更推荐使用 function 属性。

style 属性:定义样式

标签添加CSS样式。

<h1 style="color: #f00; font-size: 24px;">{dede:field.title/}</h1>

高级应用:在自定义循环中调用标题

除了在固定页面模板中,你还可以在 {dede:arclist} (文章列表)、{dede:sql} (SQL查询) 等循环标签中调用特定文章的标题。

{dede:arclist} 中调用

这是最常见的需求,在首页或自定义列表页循环显示文章列表。

字段: [field:title/]

示例: 在首页调用最新的5篇文章,并显示标题和链接。

{dede:arclist row='5' titlelen='30'}
    <div class="news-item">
        <a href="[field:arcurl/]" title="[field:fulltitle/]">[field:title/]</a>
        <span class="date">[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
    </div>
{/dede:arclist}
  • [field:arcurl/]: 文章链接
  • [field:title/]: 文章标题
  • [field:fulltitle/]: 文章完整标题(常用于 a 标签的 title 属性,鼠标悬停时显示完整标题)len='30' 直接限制标题显示长度,等同于function='cn_substr(@me, 30)'`

{dede:sql} 中调用

当你需要通过自定义SQL语句查询数据时,使用 [field:title/]

示例: 调用指定栏目ID为1下的所有文章标题。

{dede:sql sql="SELECT title FROM dede_archives WHERE typeid=1"}
    <li>[field:title/]</li>
{/dede:sql}

最佳实践与注意事项

  1. SEO优化: 文章页的 <title> 标签建议设置为“文章标题 - 网站名称”。

    {dede:global.cfg_webname/} 用于调用网站后台设置的站点名称。

  2. HTML标签过滤: 如果标题可能包含用户提交的HTML(如加粗、斜体),在列表页显示时,强烈建议使用 function='html2text(@me)' 过滤掉,防止样式错乱或XSS攻击。

  3. 编码问题: 确保你的模板文件(.htm)和DedeCMS后台设置都是UTF-8编码,这样可以完美支持中文,避免乱码。

场景 核心标签 说明
{dede:field.title/} 调用当前文章的完整标题。
栏目列表页 {dede:field.title/} 调用当前栏目的名称。
网站首页 {dede:field.title/} 通常调用后台设置的“站点名称”。
文章列表循环 [field:title/] {dede:arclist} 等循环标签中,调用单篇文章的标题。

希望这份详细的指南能帮助你完全掌握在DedeCMS中调用文档标题的各种方法!

-- 展开阅读全文 --
头像
C语言如何调用数学函数?
« 上一篇 今天
dede生成静态错误
下一篇 » 今天

相关文章

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

目录[+]