首页/开发手册/公共标签

开发手册

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

公共标签

公共标签是在任意模板页面中都可以直接调用的基础标签,涵盖包含文件、站点信息、公司信息、页面SEO、URL路径、面包屑、二维码、验证码、搜索、CSRF、语言等常用功能。掌握公共标签是模板开发的第一步。

1. 包含文件标签

用于引入公共模板片段,减少重复代码,路径基于当前模板目录下的html/文件夹。

{soeay:include file="comm/head.html"}
{soeay:include file="comm/nav.html"}
{soeay:include file="comm/foot.html"}
属性说明
file必填。被包含文件相对于当前模板 html/ 目录的路径,如 comm/head.html

注意:被包含文件中同样可以再次使用 {soeay:} 标签,系统会递归解析;但请勿循环包含,否则会导致死循环。

2. 站点信息标签

读取后台「系统设置 → 站点信息」中的配置,在所有页面全局可用。

{soeay:site.title}        站点标题
{soeay:site.subtitle}     站点副标题
{soeay:site.keywords}     站点关键词
{soeay:site.description}  站点描述
{soeay:site.logo}          站点LOGO地址
{soeay:site.domain}        站点域名
{soeay:site.icp}           备案号
{soeay:site.copyright}     版权信息
{soeay:site.theme}         当前模板主题名

使用示例:

{soeay:site.title} - {soeay:site.subtitle}

站点信息标签的更多字段与注意事项,请参阅「站点信息标签」章节。

3. 公司信息标签

读取后台「系统设置 → 公司信息」中的联系信息,常用于联系我们页面和页脚。

{soeay:company.name}      公司名称
{soeay:company.address}   公司地址
{soeay:company.mobile}    手机号码
{soeay:company.phone}     固定电话
{soeay:company.email}     电子邮箱
{soeay:company.qq}        QQ号码
{soeay:company.weixin}    微信号码

4. 当前栏目信息标签

自动识别当前页面所在栏目,输出栏目相关字段。在栏目页、详情页、单页中可用;在首页等非栏目页面可能为空。

{soeay:sort.scode}        当前栏目编码
{soeay:sort.name}         当前栏目名称
{soeay:sort.subname}      栏目副标题
{soeay:sort.filename}     栏目URL标识
{soeay:sort.ico}          栏目标图标
{soeay:sort.pic}          栏目大图
{soeay:sort.keywords}     栏目关键词
{soeay:sort.description}  栏目描述
{soeay:sort.pcode}        父栏目编码
{soeay:sort.tcode}        顶级栏目编码

注意:建议在首页或未知栏目页面配合条件标签判断后输出,避免空值。

5. 页面 SEO 信息标签

输出当前页面的标题、关键词、描述。系统会按「内容 > 栏目 > 站点」的优先级自动组合,模板中无需再写复杂判断。

{soeay:page_title}        当前页面标题
{soeay:page_keywords}     当前页面关键词
{soeay:page_description}  当前页面描述

使用示例:

{soeay:page_title}

6. 路径与地址标签

标签说明示例输出
{soeay:sitepath}站点根路径/
{soeay:sitetplpath}当前模板Web路径/template/default
{soeay:siteurl}
{soeay:sitedomain}
站点域名(读取后台配置,为空则自动检测)www.soeaycms.com
{soeay:httpurl}当前协议 + 域名https://www.soeaycms.com
{soeay:pageurl}当前页面完整URLhttps://www.soeaycms.com/news/1.html

使用示例:

当前网址:{soeay:pageurl}

7. 面包屑导航标签

输出「首页 > 栏目 > 子栏目 > 正文」的层级导航,列表页和详情页通用。

{soeay:position}
属性说明默认值
separator分隔符»(显示为 »)
indextext首页文本首页
separatoricon分隔图标URL无
indexicon首页图标URL无
{soeay:position separator=" / " indextext="网站首页"}

8. 二维码生成标签

调用公共二维码接口,将任意字符串转成二维码图片URL。

{soeay:qrcode string="{soeay:httpurl}{soeay:pageurl}"}
属性说明
string必填。需要生成二维码的字符串/URL

9. 验证码标签

用于留言板、自定义表单等需要人机校验的场景。由后台「系统设置 → 站点信息 / 互动设置」中的验证码开关控制是否启用。

标签说明输出示例
{soeay:checkcodestatus}输出验证码开关状态,1=开启、0=关闭1
{soeay:checkcode}输出验证码图片地址/common/checkcode

使用示例(先判断是否开启,再显示图片与输入框):

{soeay:if('{soeay:checkcodestatus}'=='1')}
{/soeay:if}

说明:验证码图片地址为/common/checkcode,点击图片通过追加随机参数刷新;提交时表单字段名为checkcode。配合 CSRF 标签使用可同时防机器提交与跨站伪造。

10. 搜索与留言相关标签

标签说明
{soeay:search_keyword}有搜索词时返回该词,否则返回后台配置的热门搜索词
{soeay:scaction}搜索表单提交地址,固定输出 /search
{soeay:msgaction}留言板提交地址,固定输出 /message

搜索表单示例:

<form action="{soeay:scaction}" method="get">
    <input type="text" name="keyword" value="{soeay:search_keyword}" placeholder="请输入搜索关键词" aria-label="搜索关键词">
    <button type="submit" class="btn btn-primary">搜索</button>
</form>

11. CSRF 安全标签

用于自定义表单提交时防止跨站请求伪造攻击。

{soeay:csrf_token}     输出纯 Token 字符串
{soeay:csrf_field}     输出完整隐藏域,如 <input type="hidden" name="_csrf_token" value="Token值">

使用示例:

<!-- 方式一:直接输出隐藏域(推荐) -->
{soeay:csrf_field}

<!-- 方式二:仅取 Token,自行写入隐藏域 -->
<input type="hidden" name="_csrf_token" value="{soeay:csrf_token}">

注意:后台接收时会校验_csrf_token字段,手动写的表单必须包含该字段,否则提交会被拒绝。

12. 当前语言标签

输出当前语言编码,配合多语言功能使用。

{soeay:lang}

默认输出 cn(简体中文),多语言站点可输出 en 等代码。更多多语言标签请参阅「多语言建站」章节。

13. 程序运行时间标签

输出页面从开始解析到当前位置所消耗的时间,常用于页脚展示性能信息。

页面执行时间:{soeay:runtime}

14. 日期格式化标签

将日期字符串按指定格式输出。不填 input 时输出当前时间。

{soeay:date input="2026-08-16" style="Y年m月d日"}
{soeay:date style="Y-m-d H:i:s"}
属性说明默认值
input待格式化的日期字符串当前时间
stylePHP date 格式字符Y-m-d

15. 字符串截取标签

对指定字符串进行截取,常用于栏目简介、摘要等场景。

{soeay:substr input="SoeayCMS 商业内容管理系统" length=6}
属性说明默认值
input待截取字符串空
length截取长度(按字符)0(不截取)
start起始位置0

16. 自定义标签

读取后台「扩展功能 → 自定义标签」中定义的内容,支持单值或逗号分隔随机轮显。

{soeay:label.tel}            输出固定值,如 400-123-4567
{soeay:label.hotsearch}      若值为"CMS,模板,建站"则随机输出其中一个

使用场景:将需要在多个页面维护但可能频繁变化的文案(如客服电话、 Slogan、热门搜索词)放到后台统一管理,前台模板只负责读取。

17. 公共标签使用建议

  • 公共标签不依赖具体栏目或内容,可在comm/head.html、comm/foot.html、首页、列表页、详情页等任意位置使用。
  • 页面 SEO 标签({soeay:page_title}等)已自动 fallback,无需再用{soeay:if}判断站点/栏目/内容标题。
  • 涉及外部资源(二维码、验证码图片)的标签,建议在属性中优先使用{soeay:httpurl}或{soeay:siteurl}拼接完整路径。