您能否将您的博客设置为在 Blogger 中仅显示 post 的第一个标签?
Can you set your blog to show only the very first label of a post in Blogger?
我在 HTML 和 CSS 方面有一些经验,但像 这样的正确编码Java、JS和PHP我是新手,加上第一次建BloggerTemplate/Site 从头开始,所以这是很多试验和错误。我曾尝试寻找答案,但找不到我认为与我正在寻找的内容相关的答案。
作为标准,我们知道 Blog1 小部件将在着陆页上完整显示您最近的 post 以及页脚中的作者详细信息、评论和标签。 我的问题 是您能否更改代码以仅调用显示在 post 底部的第一个标签?
作为标准,这是用于在本机博主编码中调用标签列表的语法:
<b:if cond='data:top.showPostLabels and data:post.labels'>
<data:postLabels/>
<b:loop values='data:post.labels' var='label'>
<a expr:href='data:label.url' rel='tag'><data:label.name/></a>
<b:if cond='not data:label.isLast'>,</b:if>
</b:loop>
</b:if>
我虽然这可能会改变 b:loop 说 b:include 会停止博主要求更多的标签,并且可能会停止在一个标签上,但是当我改变它时它基本上停止了整个博客不显示!
我想要的只是 "Labels: Label1" 而不是 "Labels: Label1, Label2, Label3, etc" 而不是将标签数量限制为一个。
提前感谢任何回复和帮助的人。
马克
更新: 可以通过此代码实现您需要的更简单的方法 -
<data:postLabelsLabel/> <a expr:href="data:post.labels[0].url" ><b:eval expr='data:post.labels[0].name'/></a>
将需要一个额外的条件语句来将标签限制为一个。上面的代码将修改为-
<b:if cond='data:top.showPostLabels and data:post.labels'>
<data:postLabelsLabel/>
<b:loop values='data:post.labels' var='label'>
<b:if cond='data:label.isLast'>
<a expr:href='data:label.url' rel='tag'>
<data:label.name/>
</a>
</b:if>
</b:loop>
</b:if>
我使用条件 data:label.isLast
仅当它是 post 中的最后一个标签时才打印标签(如果只有一个标签,则打印该标签)。 Blogger 按字母顺序排列标签,不提供对更改排序顺序的任何控制。
比如post有如下标签"Labels: A, B, C",那么将代码改成上面的代码后,最终结果就是是 "Labels: C"
您可以使用 index
属性,它通过循环
给出 post 标签的 zero-based 索引
<b:if cond='data:top.showPostLabels and data:post.labels'>
<data:postLabelsLabel/>
<b:loop values='data:post.labels' index='i' var='label'>
<b:if cond='data:i == 0'>
<a expr:href='data:label.url' rel='tag'>
<data:label.name/>
</a>
</b:if>
</b:loop>
</b:if>
我在 HTML 和 CSS 方面有一些经验,但像 这样的正确编码Java、JS和PHP我是新手,加上第一次建BloggerTemplate/Site 从头开始,所以这是很多试验和错误。我曾尝试寻找答案,但找不到我认为与我正在寻找的内容相关的答案。
作为标准,我们知道 Blog1 小部件将在着陆页上完整显示您最近的 post 以及页脚中的作者详细信息、评论和标签。 我的问题 是您能否更改代码以仅调用显示在 post 底部的第一个标签?
作为标准,这是用于在本机博主编码中调用标签列表的语法:
<b:if cond='data:top.showPostLabels and data:post.labels'>
<data:postLabels/>
<b:loop values='data:post.labels' var='label'>
<a expr:href='data:label.url' rel='tag'><data:label.name/></a>
<b:if cond='not data:label.isLast'>,</b:if>
</b:loop>
</b:if>
我虽然这可能会改变 b:loop 说 b:include 会停止博主要求更多的标签,并且可能会停止在一个标签上,但是当我改变它时它基本上停止了整个博客不显示!
我想要的只是 "Labels: Label1" 而不是 "Labels: Label1, Label2, Label3, etc" 而不是将标签数量限制为一个。
提前感谢任何回复和帮助的人。
马克
更新: 可以通过此代码实现您需要的更简单的方法 -
<data:postLabelsLabel/> <a expr:href="data:post.labels[0].url" ><b:eval expr='data:post.labels[0].name'/></a>
将需要一个额外的条件语句来将标签限制为一个。上面的代码将修改为-
<b:if cond='data:top.showPostLabels and data:post.labels'>
<data:postLabelsLabel/>
<b:loop values='data:post.labels' var='label'>
<b:if cond='data:label.isLast'>
<a expr:href='data:label.url' rel='tag'>
<data:label.name/>
</a>
</b:if>
</b:loop>
</b:if>
我使用条件 data:label.isLast
仅当它是 post 中的最后一个标签时才打印标签(如果只有一个标签,则打印该标签)。 Blogger 按字母顺序排列标签,不提供对更改排序顺序的任何控制。
比如post有如下标签"Labels: A, B, C",那么将代码改成上面的代码后,最终结果就是是 "Labels: C"
您可以使用 index
属性,它通过循环
<b:if cond='data:top.showPostLabels and data:post.labels'>
<data:postLabelsLabel/>
<b:loop values='data:post.labels' index='i' var='label'>
<b:if cond='data:i == 0'>
<a expr:href='data:label.url' rel='tag'>
<data:label.name/>
</a>
</b:if>
</b:loop>
</b:if>