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

如何在Blogger文章中使用b:if语句检索匹配指定标签?

报错核心原因

原代码无法正常运行有两个问题:

  • Blogger的模板标签语法不支持直接对data:post.labels(标签对象数组)使用in关键字做集合匹配
  • data:post.labels返回的不是纯标签名数组,是结构化的标签对象集合,每个标签的实际名称存储在name属性中,直接拿整个标签对象和字符串值比对永远无法命中
修正后可运行代码

要实现检测文章是否包含指定标签的需求,需要先遍历单篇文章的标签列表做匹配,再根据匹配结果执行对应逻辑,代码如下:

<b:loop index='i' values='data:posts' var='post'>
  <b:with var='hasReferansLabel' value='false'>
    <!-- 遍历当前文章的所有标签做匹配 -->
    <b:loop values='data:post.labels' var='label'>
      <b:if cond='data:label.name == "referans"'>
        <b:with var='hasReferansLabel' value='true'/>
      </b:if>
    </b:loop>

    <!-- 匹配到目标标签时才加载对应模块 -->
    <b:if cond='data:hasReferansLabel'>
      <b:include data='post' name='postCommentsAndAd'/>
    </b:if>
  </b:with>
</b:loop>
扩展用法

如果需要同时匹配多个目标标签,只需要修改标签判断的条件即可,示例:

<b:if cond='data:label.name in {"referans", "教程", "资源"}'>
  <b:with var='hasReferansLabel' value='true'/>
</b:if>

注意in关键字只能用于字符串/数字这类基础值的集合匹配,不能直接作用在对象数组上。

内容的提问来源于stack exchange,提问作者selcukctn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 00:27:19