直接调用默认的简略标题字段(推荐)
如果你的文章模型中已经填写了“简略标题”字段,那么调用非常简单。

(图片来源网络,侵删)
在列表页(如 arclist 标签)中调用
这是最常用的场景,通常在首页、列表页等模板文件中使用。
语法:
{dede:arclist titlelen='50' orderby='pubdate' row='10'}
<li>
<a href="[field:arcurl/]" title="[field:title/]">[field:shorttitle/]</a>
</li>
{/dede:arclist}
参数说明:
[field:shorttitle/]:这就是调用简略标题的核心标签,它会输出你在后台发布文章时填写的“简略标题”内容。[field:title/]:这是调用完整标题,通常放在a标签的title属性中,当鼠标悬停时显示完整标题,提升用户体验。[field:arcurl/]:调用文章的链接地址,len='50'arclist标签的参数,用于限制**完整标题**的长度,这里对[field:shorttitle/]` 无效。orderby='pubdate':按发布时间排序。row='10':调用10条文章。
示例:

(图片来源网络,侵删)
假设你的一篇文章,完整标题是“织梦CMS(DedeCMS)最新版本发布,功能强大,性能优化”,简略标题是“织梦CMS新版本发布”,那么上面的代码会输出:
<li>
<a href="/article/123.html" title="织梦CMS(DedeCMS)最新版本发布,功能强大,性能优化">织梦CMS新版本发布</a>
</li>
页(如 article_article.htm)中调用
如果你想在文章详情页本身也显示简略标题(例如在面包屑导航或页面某个特定位置),可以使用以下标签:
<h1>[field:title/]</h1> <!-- 这是文章的完整标题,通常是主标题 --> <p class="subtitle">副标题:[field:shorttitle/]</p>
自动截取完整标题作为简略标题(当未填写时)
很多时候,我们可能不想为每篇文章都手动填写简略标题,这时,我们可以让系统自动从完整标题中截取一部分作为简略标题。
这需要用到织梦的底层模板 {dede:field} 和字符串截取函数 substr。

(图片来源网络,侵删)
语法:
{dede:field name='title' function='substr(@me, 0, 20)'/}
参数说明:
name='title':指定要处理的字段是title)。function='substr(@me, 0, 20)':这是关键部分。@me:代表当前字段的原始值,也就是[field:title/]的内容。substr():是PHP的字符串截取函数。substr(@me, 0, 20):表示从标题的第0个字符(开头)开始,截取20个字符。
使用场景:
这个方法通常用在 arclist 标签中,作为 [field:shorttitle/] 的一个备选方案,我们可以使用织梦的默认值功能来实现:如果简略标题不为空,则显示简略标题;如果为空,则自动截取完整标题。
示例(结合 arclist 的 default 属性):
在织梦的早期版本中,arclist 标签支持 default 属性来设置默认值,我们可以这样写:
{dede:arclist titlelen='50' orderby='pubdate' row='10'}
<li>
<!-- 如果简略标题存在,则显示简略标题;如果不存在,则截取完整标题的前20个字符 -->
<a href="[field:arcurl/]" title="[field:title/]">[field:shorttitle function='(@me ? @me : substr(@me, 0, 20));'/]</a>
</li>
{/dede:arclist}
注意: 上面这种 function 的写法在某些版本的织梦中可能不支持,一个更稳定、更推荐的方法是修改织梦的核心文件(如 arc.listview.class.php),但这有一定风险。
对于大多数用户来说,最简单的方法是:
- 手动填写简略标题:这是最可控、最推荐的方式,可以确保标题的精准和吸引力。
- 在模板里直接截取:如果不想手动填写,就直接在模板里用
{dede:field name='title' function='substr(@me, 0, 20)'/}来调用,放弃简略标题字段。
自定义字段调用(高级用法)
如果你的简略标题存储在一个自定义字段里(例如你创建了一个名为 my_short_title 的字段),那么调用方法如下:
在列表页(arclist)中调用
需要开启 arclist 的自定义字段支持。
{dede:arclist titlelen='50' orderby='pubdate' row='10' addfields='my_short_title'}
<li>
<a href="[field:arcurl/]" title="[field:title/]">[field:my_short_title/]</a>
</li>
{/dede:arclist}
关键参数:
addfields='my_short_title':这个参数非常重要,它告诉arclist标签需要获取哪些额外的自定义字段,如果有多个自定义字段,用逗号隔开,如addfields='my_short_title,author'。
页(article_article.htm)中调用
页调用自定义字段更简单,织梦默认会加载当前文章的所有自定义字段。
<h1>[field:title/]</h1> <p>自定义简略标题:[field:my_short_title/]</p>
总结与最佳实践
| 场景 | 推荐方法 | 代码示例 |
|---|---|---|
| 后台已填写简略标题 | 直接调用 [field:shorttitle/] |
<a href="[field:arcurl/]" title="[field:title/]">[field:shorttitle/]</a> |
| 未填写简略标题,希望自动截取 | 在模板中直接截取完整标题 | {dede:field name='title' function='substr(@me, 0, 20)';/} |
| 存储在自定义字段 | 使用 addfields 参数调用自定义字段 |
{dede:arclist addfields='my_short_title'}...[field:my_short_title]...{/dede:arclist} |
最佳实践建议:
- 养成填写简略标题的习惯:这能让你更好地控制首页和列表页的展示效果,写出更吸引人的短标题,对SEO和点击率都有好处。
- 保持简略标题的简洁性:通常建议在20-30个汉字以内,突出核心关键词。
- 优先使用方法一:它是织梦原生支持的最稳定、最高效的方式。
希望这份详细的教程能帮助你完美解决简略标题的调用问题!
