首页/开发手册/Loop循环标签

开发手册

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

Loop循环标签

Loop循环标签

Loop循环标签({soeay:loop})用于在模板中循环输出数据,支持SQL查询和数据表两种模式。

SQL查询模式

{soeay:loop sql="SELECT * FROM soeay_content WHERE status=1" num=10}
    [soeay:title]
{/soeay:loop}

数据表模式

{soeay:loop table=soeay_content where="status=1" order=date dir=desc num=10}
    [soeay:title]
{/soeay:loop}

属性说明

  • sql:SQL查询语句(与table二选一)
  • table:数据表名(与sql二选一)
  • where:WHERE条件(table模式可用)
  • order:排序字段
  • dir:排序方向,asc/desc
  • num:显示数量,默认 10

可用变量

  • [soeay:i] / [soeay:num]:当前循环序号(从 1 开始)
  • [soeay:字段名]:查询结果中的任意字段,如 [soeay:title]、[soeay:date]

使用场景

Loop 循环标签适合在模板中执行一些简单查询,例如读取特定条件的内容、最近更新的数据、或自定义 SQL 查询结果。它是 {soeay:list} 标签的补充,适合一次性、临时性的数据调用。

注意事项

  • 安全限制:sql 模式仅允许 SELECT/SHOW/PRAGMA 查询,系统会自动拒绝 INSERT/UPDATE/DELETE/DROP/ALTER/CREATE 等危险语句。
  • table 模式:仅允许查询 soeay_content、soeay_content_sort、soeay_slide、soeay_link、soeay_tags、soeay_comment 等白名单表。
  • where 条件:系统会对 where 字符串做危险关键字过滤,但建议 still 避免使用用户传入的参数。
  • 循环变量:可用 [soeay:字段名] 访问查询结果字段,以及 [soeay:i] / [soeay:num] 循环序号。注意不存在 [soeay:total] 变量。
  • 性能:每个 Loop 标签都会触发一次数据库查询,不要在同一个页面中大量使用,以免影响性能。