如何在标签隐藏时检查 Blogger Post 是否具有特定标签?

How to check if a Blogger Post has specific Label when the Label is HIDDEN?

我所有的 Blogger post 都有 标签,但我选择不在我的 Blogger 站点上显示它们。在我的 Blogger 仪表板 -> 帖子 上,我仍然可以看到每个 post 的所有标签并按标签过滤它们,这正是我想要的。但是当我尝试检查当前 post 是否有特定标签(它确实有)时,以下代码不起作用(就在 </body> 之前):

<b:section id="testSection" name="Test Section">

        <b:if cond='data:posts any (p => p.labels any (l => l.name == "Label1"))'>
          <script type="text/javascript">
              console.log("Label1");
          </script>
          <link href='post-style-for-label1.css' rel='stylesheet' type='text/css'/>
        </b:if>

    </b:section>

我读了 ,说我们不能检查 data:post.labels 外部博客小部件 ,但是当我把它放在一个小部件里面时,它说小部件不能包含 <b:if>——这就是我将它放在 <b:section> 下的原因。但最后,我仍然无法让我的代码检测到 Label1。我尝试了以下代码但也不起作用:

<b:if cond='data:post.labels any (label => label.name == "Label1")'>
    <script type="text/javascript">
        console.log("Label1");
    </script>
    <link href='post-style-for-label1.css' rel='stylesheet' type='text/css'/>
</b:if>

如果我没记错的话,我已经删除了显示标签的代码,但是是否有必要在站点上显示标签以使代码起作用?我对此表示怀疑,因为 Blogger 确实有每个 post 的所有标签。我怎样才能让我的代码工作?提前致谢。

Blogger 主题提供多种类型的小部件,如 Header、博客、个人资料...(26 种),每种类型都有其数据标签。在您的示例中,data:post.labels 属于小部件类型 Blog 因此,您不能在小部件标签之外使用它。

此外,一个小部件只能包含 b:includeable 个标签(类似于 Javascript 中的函数)

如果您的主题已经有一个博客小部件,请将您的代码放在带有 id='main' 的标签 b:includable 中,否则,创建如下所示:

<b:widget id='Blog1' type='Blog'>

    <b:includable id='main'>

      <b:loop values='data:posts' var='post'>

        <b:if cond='data:post.labels any (label => label.name == "Label1")'>
          <script type="text/javascript">
             console.log("Label1");
          </script>
        </b:if>

      </b:loop>

    </b:includable>

</b:widget>