基础调用(最常用)
这是最基本、最直接的调用方式,它会显示最新的几条留言,包含留言者姓名、留言内容和留言时间。

(图片来源网络,侵删)
代码示例:
<h3>最新留言</h3>
<ul class="guestbook-list">
{dede:guestbook}
<li>
<div class="guest-info">
<span class="name">[field:uname function='htmlspecialchars(@me)'/]</span>
<span class="time">[field:time function='strftime("%Y-%m-%d %H:%M",@me)'/]</span>
</div>
<div class="guest-content">[field:msg function='htmlspecialchars(@me)'/]</div>
</li>
{/dede:guestbook}
</ul>
代码解释:
{dede:guestbook}和{/dede:guestbook}:这是标签的开始和结束,它们之间的内容会被循环输出。[field:uname ...]:调用留言者的用户名。function='htmlspecialchars(@me)':这是一个非常重要的安全函数,它会将特殊字符(如<,>,&)转换为HTML实体,可以有效防止XSS跨站脚本攻击。强烈建议在所有用户输入内容上都使用此函数。
[field:time ...]:调用留言的时间。function='strftime("%Y-%m-%d %H:%M",@me)':这是一个时间格式化函数,%Y-%m-%d %H:%M是输出格式,代表年-月-日 时:分,你可以根据需要修改这个格式,"%Y年%m月%d日"。
[field:msg ...]:调用留言的正文内容。- 同样,也建议使用
htmlspecialchars函数进行过滤。
- 同样,也建议使用
常用参数详解
通过给 {dede:guestbook} 标签添加参数,可以更精确地控制留言的显示。
row - 设置显示条数
用于指定要显示的留言数量。

(图片来源网络,侵删)
示例:显示最新的5条留言
{dede:guestbook row='5'}
<!-- 循环内容 -->
{/dede:guestbook}
titlelen - 设置标题长度
虽然留言板没有标题,但如果你想在留言内容前截取一部分作为摘要,可以使用这个参数,它作用于留言内容 [field:msg]。
示例:让留言内容只显示前30个字符
{dede:guestbook row='5' titlelen='30'}
<li>[field:msg function='htmlspecialchars(@me)'/]</li>
{/dede:guestbook}
infolen - 设置信息长度
这个参数和 titlelen 类似,也是用于截取留言内容的长度,通常两者选其一使用即可。
示例:让留言内容只显示前50个字符
{dede:guestbook row='5' infolen='50'}
<li>[field:msg function='htmlspecialchars(@me)'/]</li>
{/dede:guestbook}
orderby - 排序方式
用于设置留言的排序规则。
dtime:按留言时间降序(默认,最新的在前)。dtime asc:按留言时间升序(最早的在前)。
示例:按留言时间升序显示,即显示最早的留言
{dede:guestbook row='10' orderby='dtime asc'}
<!-- 循环内容 -->
{/dede:guestbook}
完整实例:创建一个“最新留言”模块
假设你想在网站首页的侧边栏显示一个“最新留言”模块,包含5条留言,每条留言显示用户名、时间和截取后的30字内容。
HTML 代码 (放在模板文件中):
<div class="sidebar-box">
<h3 class="sidebar-title">最新留言</h3>
<ul class="sidebar-list">
{dede:guestbook row='5' titlelen='30'}
<li>
<span class="guest-user">[field:uname function='htmlspecialchars(@me)'/] 说:</span>
<span class="guest-text">[field:msg function='htmlspecialchars(@me)'/]</span>
<span class="guest-time">([field:time function='strftime("%m-%d",@me)'/])</span>
</li>
{/dede:guestbook}
</ul>
</div>
<style>
/* 一些简单的样式,让留言更好看 */
.sidebar-list {
list-style: none;
padding: 0;
margin: 0;
}
.sidebar-list li {
padding: 8px 0;
border-bottom: 1px dashed #eee;
font-size: 14px;
line-height: 1.5;
}
.guest-user {
font-weight: bold;
color: #0066cc;
}
.guest-text {
color: #333;
}
.guest-time {
color: #999;
font-size: 12px;
float: right;
}
</style>
重要注意事项
-
开启留言功能:
- 确保你的网站后台已经开启了留言板功能,路径:
后台->系统->系统基本参数->互动设置->是否开启留言板功能,选择“是”。 - 确保留言板模块已启用,路径:
后台->模块->模块管理-> 找到“留言板”并确保其为“启用”状态。
- 确保你的网站后台已经开启了留言板功能,路径:
-
安全第一:
- 再次强调,务必在调用
[field:msg]、[field:uname]等用户提交的字段时,使用function='htmlspecialchars(@me)'进行过滤,这是防止网站被恶意脚本注入的关键。
- 再次强调,务必在调用
-
调用位置:
这个标签可以在织梦的任何模板文件中使用,包括首页、列表页、文章页,甚至是自定义的页面模板。
-
分页:
- 默认的
{dede:guestbook}标签不包含分页功能,如果你需要一个非常长的留言列表并希望分页显示,你需要使用更复杂的 arclist 标签结合自定义模型来实现,或者修改guestbook.htm模板文件来支持分页,对于大多数网站首页侧边栏的“最新留言”不使用分页是常见且正确的做法。
- 默认的
通过以上步骤,你就可以灵活地在织梦网站的任何地方调用留言板了。
