如何在标签隐藏时检查 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>
我所有的 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>