You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Statamic的Antlers模板中根据用户认证状态显示内容?

如何在Statamic的Antlers模板中根据用户认证状态显示内容?

嘿,我刚好清楚这个问题的解决办法!在Statamic的Antlers模板里,有几个简单直接的内置标签可以帮你判断用户的认证状态,完全不用额外折腾Laravel代码,我给你拆解一下:

  • 基础用户登录判断:{{ if user }}
    当用户成功登录(不管是前台会员还是后台管理员),Statamic会自动在模板中注入user变量。你可以通过检查这个变量是否存在来控制内容显示:

    {{ if user }}
        <!-- 登录用户可见的内容 -->
        <div class="auth-content">
            欢迎回来,{{ user:name }}!这是你的专属管理面板内容。
        </div>
    {{ else }}
        <!-- 未登录时的提示或内容 -->
        <p>请先登录以访问管理面板。</p>
    {{ /if }}
    

    甚至还能通过user变量直接调用用户的详细信息,比如邮箱{{ user:email }}、角色{{ user:role }}之类的。

  • 精准判断后台登录用户:{{ if authenticated:cp }}
    如果你只想针对登录到后台(Control Panel)的用户显示内容,这个标签会更精准——它专门用来检测用户是否登录到了Statamic的管理后台:

    {{ if authenticated:cp }}
        <!-- 仅后台登录用户可见的内容 -->
        <div class="cp-exclusive-content">
            这是后台专属的管理模块内容。
        </div>
    {{ /if }}
    

    这个应该完全匹配你的场景,毕竟你是要在admin面板里控制内容显示。

  • 进阶:根据用户角色细化权限
    要是你还想进一步限制,比如只给管理员显示特定内容,可以结合用户角色来判断:

    {{ if user:role == "admin" }}
        <div class="admin-only-feature">
            管理员专属的高级管理功能区域。
        </div>
    {{ /if }}
    

这些都是Statamic官方内置的Antlers功能,文档里其实有提到,可能你之前没留意到对应的板块~应该能顺利解决你的问题啦!

备注:内容来源于stack exchange,提问作者developer733

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 12:35:29