基础信息调用
这些标签用于显示文章的基本信息,如标题、发布时间、来源、作者等。
| 说明 | 示例 | |
|---|---|---|
{dede:field.title/} |
<h1>{dede:field.title/}</h1> |
|
{dede:field.pubdate function='strftime("%Y-%m-%d %H:%M:%S",@me)'/} |
发布时间,使用strftime函数格式化日期 |
<span>发布时间:{dede:field.pubdate function='strftime("%Y-%m-%d",@me)'/}</span> |
{dede:field.source/} |
文章来源 | <span>来源:{dede:field.source/}</span> |
{dede:field.writer/} |
文章作者 | <span>作者:{dede:field.writer/}</span> |
{dede:field.click/} |
点击量/浏览次数 | <span>浏览:{dede:field.click/} 次</span> |
{dede:field.id/} |
文章ID | <span>文章ID:{dede:field.id/}</span> |
文章内容调用
这是文章页最核心的部分。
| 说明 | 示例 | |
|---|---|---|
{dede:field.body/} |
文章正文内容 | <div class="article-content">{dede:field.body/}</div> |
相关文章调用
在文章页末尾显示与本文章同栏目或同关键词的相关文章,能有效增加用户停留时间。
方法1:同栏目相关文章(最常用)
<div class="related-article">
<h3>相关文章</h3>
<ul>
{dede:likearticle row='8' titlelen='40'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<span>([field:pubdate function="MyDate('m-d', @me)"/])</span>
</li>
{/dede:likearticle}
</ul>
</div>
标签解析:
{dede:likearticle ...}: 调用相关文章标签。row='8': 显示8条相关文章,len='40'`: 标题最多显示40个字符。[field:arcurl/]: 文章链接。[field:title/]: 文章标题。[field:pubdate ...]: 发布日期,这里使用自定义函数MyDate进行格式化。
方法2:同关键词相关文章
需要确保文章填写了“关键词”,并且系统开启了“关键词自动提取”或手动填写了“关键词”。
<div class="related-keywords">
<h3>为您推荐</h3>
<ul>
{dede:arclist keyword='{dede:field.keywords/}' row='5' titlelen='30'}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:arclist}
</ul>
</div>
标签解析:
keyword='{dede:field.keywords/}': 获取当前文章的关键词,作为arclist的条件进行查询。
上下篇文章调用
下方显示上一篇和下一篇文章的链接。
<div class="prenext">
<div class="pre">
{dede:prenext get='pre'/}
</div>
<div class="next">
{dede:prenext get='next'/}
</div>
</div>
标签解析:
{dede:prenext get='pre'/}: 获取上一篇文章链接,默认格式为:<< 上一篇:[文章标题]{dede:prenext get='next'/}: 获取下一篇文章链接,默认格式为:下一篇:[文章标题] >>- 你可以通过修改
include/arc.archives.class.php文件来自定义这个标签的输出格式。
文章评论调用
调用文章的评论列表。
<div class="pinglun">
<h3>评论列表</h3>
{dede:feedback row='10' table='dede_feedback'}
<div class="pl-item">
<div class="pl-user">
<strong>[field:username function='(@me=="guest" ? "匿名网友" : @me)'/]</strong>
<span>[field:msgtime function='strftime("%Y-%m-%d %H:%M",@me)'/]</span>
</div>
<div class="pl-content">[field:msg/]</div>
</div>
{/dede:feedback}
</div>
标签解析:
{dede:feedback ...}: 调用评论标签。row='10': 显示10条评论。table='dede_feedback': 指定评论表,默认即可。[field:username/]: 评论用户名。[field:msgtime/]: 评论时间。[field:msg/]: 评论内容。
文章简介/摘要调用
调用文章在列表页显示的摘要,如果没有填写摘要,则调用文章正文的前N个字符。
<div class="intro">
<h3>文章简介</h3>
{dede:field.description function='htmlspecialchars(@me)'/}
</div>
标签解析:
{dede:field.description/}: 调用文章摘要。function='htmlspecialchars(@me)': 对摘要内容进行HTML实体编码,防止XSS攻击。
调用当前栏目信息
获取当前文章所在栏目的名称、链接等信息。
| 说明 | 示例 | |
|---|---|---|
{dede:field name='typename'/} |
当前栏目名称 | <span>栏目:{dede:field.typename/}</span> |
{dede:field typeid/} |
当前栏目ID | |
<a href="{dede:type typeid='[field:id/]'}[field:typeurl]{/dede:type}"> |
当前栏目链接 | <a href="{dede:type typeid='[field:id/]'}[field:typeurl]{/dede:type}">返回{dede:field.typename/}栏目</a> |
自定义字段调用
如果你的文章模型添加了自定义字段(price, video_url),可以这样调用。
假设你添加了一个名为 author_intro 的自定义字段(文本类型)。
<div class="author-intro">
<h3>作者简介</h3>
{dede:field.author_intro/}
</div>
完整的 article_article.htm 示例
这是一个整合了上述大部分标签的完整文章页模板示例。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">{dede:field.title/} - {dede:global.cfg_webname/}</title>
<meta name="description" content="{dede:field.description function='html2text(@me)'/}" />
<meta name="keywords" content="{dede:field.keywords/}" />
</head>
<body>
<div class="container">
<!-- 文章标题 -->
<h1>{dede:field.title/}</h1>
<!-- 文章基本信息 -->
<div class="article-info">
<span>发布时间:{dede:field.pubdate function='strftime("%Y-%m-%d %H:%M:%S",@me)'/}</span>
<span>来源:{dede:field.source/}</span>
<span>作者:{dede:field.writer/}</span>
<span>浏览:{dede:field.click/} 次</span>
<span>栏目:<a href="{dede:type typeid='[field:id/]'}[field:typeurl]{/dede:type}">{dede:field.typename/}</a></span>
</div>
<!-- 文章内容 -->
<div class="article-content">
{dede:field.body/}
</div>
<!-- 上下篇文章 -->
<div class="prenext">
<div class="pre">
{dede:prenext get='pre'/}
</div>
<div class="next">
{dede:prenext get='next'/}
</div>
</div>
<!-- 相关文章 -->
<div class="related-article">
<h3>相关文章</h3>
<ul>
{dede:likearticle row='5' titlelen='40'}
<li>
<a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
<span>([field:pubdate function="MyDate('m-d', @me)"/])</span>
</li>
{/dede:likearticle}
</ul>
</div>
<!-- 文章评论 -->
<div class="pinglun">
<h3>评论 (共 <span id="comm-num">0</span> 条)</h3>
<div id="comm-list">
{dede:feedback row='10' table='dede_feedback'}
<div class="pl-item">
<div class="pl-user">
<strong>[field:username function='(@me=="guest" ? "匿名网友" : @me)'/]</strong>
<span>[field:msgtime function='strftime("%Y-%m-%d %H:%M",@me)'/]</span>
</div>
<div class="pl-content">[field:msg/]</div>
</div>
{/dede:feedback}
</div>
</div>
</div>
</body>
</html>
重要提示
- 模板修改后:修改了
article_article.htm后,需要到后台的“生成” -> “更新HTML” -> “选择单个文档更新”中,重新生成你修改过的文章页面,才能看到效果。 - 标签大小写:织梦标签对大小写不敏感,但为了规范,建议统一使用小写。
- 自定义函数:像
strftime、MyDate这样的PHP函数可以灵活地格式化日期和时间,非常实用。 - 安全:对于用户输入的内容(如评论),使用
htmlspecialchars等函数进行过滤,防止XSS攻击是一个好习惯。
希望这份详细的指南能帮助你完全掌握织梦文章页的标签调用!
