如何根据条件判断(if标签)动态显示不同的内容块?

📅 👁️ 60

在安企CMS中,网站内容的动态展示是提升用户体验和运营效率的关键。您可能常常遇到这样的需求:希望某个内容块只在特定条件下出现,或者针对不同情况显示不同的信息。这时,安企CMS强大的条件判断功能——if标签,就能派上大用场了。

安企CMS的模板系统采用了类似Django模板引擎的语法,让您能够以直观的方式在模板中实现逻辑判断。通过灵活运用if标签,您可以轻松控制页面元素的显示与隐藏,让网站内容呈现出前所未有的智能与个性化。

认识 if 标签的基本用法

if标签的核心思想是:如果某个条件为真(True),就执行它包裹的代码块。安企CMS提供了几种常见的if标签结构,以满足您不同的判断需求:

  1. 简单的 if 判断 这是最基础的用法。当您只需要在满足单一条件时显示内容,或者检查某个变量是否存在时,可以使用它。

    {% if 条件 %}
        <!-- 当条件为真时,这里的内容会显示 -->
    {% endif %}
    

    例如,如果只想在文章有缩略图时显示图片:

    {% if archive.Thumb %}
        <img src="{{ archive.Thumb }}" alt="{{ archive.Title }}" />
    {% endif %}
    
  2. if-else 判断 当您需要根据条件在两种内容之间进行选择时,if-else结构非常实用。

    {% if 条件 %}
        <!-- 当条件为真时显示 -->
    {% else %}
        <!-- 当条件为假时显示 -->
    {% endif %}
    

    比如,如果文章有描述就显示描述,否则显示一段默认提示:

    {% if archive.Description %}
        <p>{{ archive.Description }}</p>
    {% else %}
        <p>暂无内容简介。</p>
    {% endif %}
    
  3. if-elif-else 多重判断 当您需要处理多个互斥的条件时,if-elif-else结构能让您的逻辑更清晰。elif是“else if”的简写。

    {% if 条件1 %}
        <!-- 当条件1为真时显示 -->
    {% elif 条件2 %}
        <!-- 当条件1为假,且条件2为真时显示 -->
    {% else %}
        <!-- 所有条件都为假时显示 -->
    {% endif %}
    

    举个例子,根据文章的浏览量显示不同的热门状态:

    {% if archive.Views > 1000 %}
        <span>🔥 超级热门!</span>
    {% elif archive.Views > 100 %}
        <span>👍 比较热门</span>
    {% else %}
        <span>✨ 持续更新中</span>
    {% endif %}
    

    无论使用哪种形式,最后都必须以{% endif %}来结束整个条件判断块。

常用的条件表达式

if标签中,您可以组合各种表达式来构建复杂的判断逻辑。

  • 变量是否存在/是否为真 (Truthiness) 在安企CMS模板中,任何非空字符串、非零数字、非空对象或数组,都会被视为”真”。而空字符串、零、nil(空值)或布尔值false则被视为”假”。

    {% if system.SiteLogo %}
        <img src="{{ system.SiteLogo }}" alt="{{ system.SiteName }}" />
    {% else %}
        <p>网站Logo缺失</p>
    {% endif %}
    
  • 数值与字符串比较 您可以对数值(如ID、浏览量、价格)和字符串进行比较。

    • 相等/不相等: == (等于), != (不等于)
    • 大小比较: > (大于), < (小于), >= (大于等于), <= (小于等于)
    {% if archive.CategoryId == 5 %}
        <!-- 这是ID为5的分类下的文章 -->
    {% endif %}
    
    {% if contact.Cellphone != "" %}
        <a href="tel:{{ contact.Cellphone }}">{{ contact.Cellphone }}</a>
    {% endif %}
    
  • 逻辑运算符 当您需要组合多个条件时,可以使用and(逻辑与)、or(逻辑或)、not(逻辑非,也可以用!)。

    {% if archive.Thumb and archive.CreatedTime %}
        <p>文章带图且有发布时间</p>
    {% endif %}
    
    {% if archive.ModuleId == 1 or archive.ModuleId == 2 %}
        <p>这篇文章属于文章或产品模型</p>
    {% endif %}
    
    {% if not archive.Description %}
        <p>文章没有简介</p>
    {% endif %}
    
  • 列表或集合判断 您可以使用in运算符来判断某个值是否在列表中。

    {% set allowed_ids = "1,3,5"|split:"," %} {# 假设这是一个ID列表 #}
    {% if archive.Id in allowed_ids %}
        <p>这是被允许展示的文章</p>
    {% endif %}
    

结合安企CMS标签的实际应用场景

现在,我们来看看如何在安企CMS的日常模板开发中,将if标签运用到具体场景中。

  1. 导航菜单中的活跃状态 网站导航是用户最常互动的部分。为当前页面对应的导航项添加高亮样式,是提升用户体验的常见做法。
    
    {% navList navs %}
        <ul>
            {% for item in navs %}
                <li {% if item.IsCurrent %}class="active"{% endif %}>
                    <a href="{{ item.Link }}">{{ item.Title }}</a>
                    {% if item.NavList %} {# 判断是否有子导航 #}
                        <ul class="sub-menu">
                            {% for sub_item in item.NavList %}
                                <li {% if sub_item.IsCurrent %}class="active"{% endif %}>
                                    <a href="{{ sub_item.Link }}">{{ sub_item.Title }}</a>
                                </li>
                            {% endfor %}
                        </ul>
                    {% endif %}
                </li>
            {% endfor %}
        </ul>
    {% endnavList %}
    
    这里,item.IsCurrent是一个布尔值,用于判断当前导航项是否对应当前

相关文章

如何在模板中显示后台自定义的横幅(Banner)图片列表?

网站的横幅(Banner)图片是吸引访客目光、展示核心信息的重要元素。在安企CMS中,您可以灵活地在后台自定义这些横幅图片,并将其优雅地呈现在网站的各个模板位置。下面,我们将详细探讨如何在模板中显示后台自定义的横幅图片列表,让您的网站更具吸引力。 ### 后台横幅图片的配置与管理 在安企CMS的后台,横幅图片的管理主要分为两种情况:全局首页横幅和特定内容横幅。 1.

2025-11-08

如何将图片地址转换为缩略图格式进行显示?

在网站运营中,图片扮演着至关重要的角色。它们不仅能吸引用户的目光,还能有效传达信息。然而,过大的图片会严重影响网站加载速度,进而损害用户体验和搜索引擎排名。因此,将图片地址转换为缩略图格式进行显示,成为了优化网站性能不可或缺的一环。AnQiCMS 在这方面提供了非常便捷的功能,它能自动为您的网站生成和管理图片缩略图,并提供灵活的调用方式,帮助您轻松应对图片优化挑战。 ### AnQiCMS

2025-11-08

如何截取长文本内容并在末尾添加省略号,以优化列表显示?

在网站运营中,尤其是管理内容丰富的平台,列表页的显示效果对用户体验至关重要。无论是文章列表、产品概览还是新闻动态,我们都希望页面整洁、信息一目了然。然而,当文档内容或描述过长时,直接显示在列表中往往会导致版面混乱,影响整体美观和信息获取效率。此时,有效地截取文本并添加省略号就显得尤为重要。 安企CMS(AnQiCMS)提供了强大而灵活的模板系统,其中内置的文本过滤器能帮助我们轻松解决这一问题

2025-11-08

如何在网站内容中实现HTML标签的安全输出,避免转义?

在网站内容管理中,尤其当内容包含丰富的格式或来自用户输入时,如何安全地输出 HTML 标签是一个至关重要的问题。安企CMS(AnQiCMS)在设计之初就充分考虑了这一点,其模板引擎默认会对输出的变量进行转义,以有效防范跨站脚本攻击(XSS)等安全风险。 ### 理解模板引擎的默认行为 安企CMS的模板引擎借鉴了Django等主流框架的语法,其核心理念之一就是“安全至上”

2025-11-08

如何使用循环(for标签)遍历并显示内容列表?

在安企CMS中,无论是展示文章列表、产品目录,还是导航菜单、友情链接,我们都会频繁地与内容列表打交道。要让这些内容动态地展现在网站前端,离不开强大的循环功能。今天,我们就来深入了解如何使用安企CMS模板中的循环(`for`标签)来遍历并显示您的内容列表。 ### `for` 标签的核心语法:让内容动起来 安企CMS的模板语法类似Django和Blade,非常直观。当您需要处理一组数据时

2025-11-08

如何将时间戳格式化为可读的日期时间字符串进行显示?

在安企CMS中将时间戳格式化为可读日期:一份实用的指南 在管理网站内容时,我们经常会遇到需要显示文章发布时间、更新时间、用户注册时间等信息。这些数据在数据库中通常以一串数字——也就是“时间戳”的形式存储。虽然计算机能轻松理解这些数字,但对于访问网站的用户来说,它们可就显得不那么友好了。比如,看到“1678886400”这样的数字,远不如“2023年3月15日 10:00:00”来得直观清晰

2025-11-08

如何定义模板变量并在内容显示中复用?

在安企CMS中管理和展示网站内容,灵活运用模板变量无疑是提升效率和保持网站一致性的关键。无论是需要统一调整全站信息,还是为特定内容定制独有属性,理解如何定义和复用模板变量,都能让内容运营变得更加得心应手。 ### 从后台源头定义变量 在安企CMS中,很多我们日常在网站上看到的信息,实际上都是通过后台预设的变量来管理的。这意味着您无需触碰一行代码,就能轻松定义和修改这些内容。 首先

2025-11-08

安企CMS如何管理和显示上传的图片及视频资源?

在使用安企CMS管理网站内容时,图片和视频资源无疑是丰富页面、提升用户体验的关键。安企CMS提供了一套直观而强大的功能,帮助我们高效地上传、管理并展示这些多媒体内容。 ### 一、资源的便捷上传与集中管理 当我们创建文章、产品或单页内容时,可以在内容编辑区直接插入图片和视频。这个过程非常流畅,就像日常使用文档编辑器一样。除了这种即时插入方式,安企CMS还设有一个专门的“图片资源管理”区域

2025-11-08