dede简略标题调用

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

直接调用默认的简略标题字段(推荐)

如果你的文章模型中已经填写了“简略标题”字段,那么调用非常简单。

dede简略标题调用
(图片来源网络,侵删)

在列表页(如 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条文章。

示例:

dede简略标题调用
(图片来源网络,侵删)

假设你的一篇文章,完整标题是“织梦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简略标题调用
(图片来源网络,侵删)

语法:

{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/] 的一个备选方案,我们可以使用织梦的默认值功能来实现:如果简略标题不为空,则显示简略标题;如果为空,则自动截取完整标题。

示例(结合 arclistdefault 属性):

在织梦的早期版本中,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),但这有一定风险。

对于大多数用户来说,最简单的方法是:

  1. 手动填写简略标题:这是最可控、最推荐的方式,可以确保标题的精准和吸引力。
  2. 在模板里直接截取:如果不想手动填写,就直接在模板里用 {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}

最佳实践建议:

  1. 养成填写简略标题的习惯:这能让你更好地控制首页和列表页的展示效果,写出更吸引人的短标题,对SEO和点击率都有好处。
  2. 保持简略标题的简洁性:通常建议在20-30个汉字以内,突出核心关键词。
  3. 优先使用方法一:它是织梦原生支持的最稳定、最高效的方式。

希望这份详细的教程能帮助你完美解决简略标题的调用问题!

-- 展开阅读全文 --
头像
dede列表标题长度如何设置?
« 上一篇 昨天
dede登录密码重置,具体怎么操作?
下一篇 » 昨天

相关文章

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

目录[+]