首页/开发手册/文章评论标签

开发手册

SoeayCMS 安装、标签使用与二次开发完整指南

文章评论标签

文章评论功能用于在文章详情页展示和提交评论。系统既提供模板标签直接渲染,也支持前端 AJAX 调用。

方式一:模板标签直接渲染(推荐)

在内容详情页模板中使用 {soeay:comment} 块标签输出评论列表。id 属性可省略,系统会自动取当前内容 ID;如需在其它位置调用指定文章评论,可传 id={soeay:content.id}。

{soeay:comment num=10}
    <div class="comment-item">
        <p>评论内容:[soeay:comment]</p>
        <p>评论时间:[soeay:create_time]</p>
    </div>
{/soeay:comment}
属性说明默认值
id内容ID,在内容详情页可省略,自动取当前内容ID当前内容ID
num显示条数10

评论列表可用变量

变量说明
[soeay:id]评论ID
[soeay:uid]评论用户ID(0 表示匿名)
[soeay:comment]评论内容
[soeay:create_time]评论时间
[soeay:i] / [soeay:num]循环序号

方式二:前端 AJAX 调用

如需异步加载、分页或更复杂的交互,可调用以下接口:

接口方法说明
/comment/list?contentid=1GET获取评论列表
/comment/addPOST发表评论(需登录)
/comment/likePOST点赞评论
/comment/opposePOST反对评论

评论提交表单示例

{soeay:if('{soeay:member.id}'!='')}
    <textarea id="comment-content" placeholder="发表评论..."></textarea>
    <button onclick="submitComment()">发表评论</button>
{else}
    <p>请先登录后发表评论</p>
{/soeay:if}

前端调用示例

// 获取评论列表
fetch('/comment/list?contentid=' + contentId)
    .then(r => r.json())
    .then(data => renderComments(data));

// 提交评论
fetch('/comment/add', {
    method: 'POST',
    headers: { 'X-CSRF-Token': csrfToken },
    body: JSON.stringify({ contentid: 1, comment: '...' })
});

使用场景

  • 在文章详情页底部展示评论列表。
  • 会员登录后才允许发表评论,未登录时给出提示。
  • 如需评论分页,建议通过 AJAX 调用 /comment/list 接口实现。