【问题标题】:How to check if a Blogger Post has specific Label when the Label is HIDDEN?标签隐藏时如何检查博客帖子是否具有特定标签?
【发布时间】:2020-03-10 15:24:29
【问题描述】:

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

我读了answer here,说我们不能检查data:post.labels outside Blog widget,但是当我把它放在一个小部件中时,它说小部件不能包含&lt;b:if&gt; --这就是为什么我把它放在&lt;b:section&gt; 下。但最后,我仍然无法让我的代码检测到 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 确实为每个帖子提供了我所有的标签。我怎样才能让我的代码工作?提前致谢。

【问题讨论】:

    标签: blogger


    【解决方案1】:

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

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

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

    <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>
    

    【讨论】:

    • id='Blog1'已经存在,所以我根据你的代码创建了id='Blog2',但是条件还是找不到我的标签。正如我在帖子中所强调的,我的标签是HIDDEN。这可能是data.post.labels 条件找不到它们的原因吗?还是条件逻辑错了?
    • 我刚刚确认data:post.labels 不包含我的任何帖子标签,我确实指定了一些。知道是什么原因导致这种情况发生吗?
    • 难道我的博客模板设置为b:js='false'
    • 抱歉,要使用post.labels,我们需要循环浏览博客文章。我更新了答案。
    • 我无法循环浏览这些帖子。如果您仔细阅读我的问题,我想知道特定帖子是否包含特定标签。假设我有一个帖子标题 Hello World,我想知道这个帖子是否有一个名为 Label1 的标签,以便我可以将 .css 文件应用于所有帖子这个标签。我将更新我的问题以使其更清楚。
    猜你喜欢
    • 1970-01-01
    • 2015-12-17
    • 2018-10-12
    • 2022-07-24
    • 2022-01-13
    • 2016-05-31
    • 1970-01-01
    • 2018-04-17
    • 2014-06-02
    相关资源
    最近更新 更多