您能否将您的博客设置为在 Blogger 中仅显示 post 的第一个标签?

Can you set your blog to show only the very first label of a post in Blogger?

我在 HTMLCSS 方面有一些经验,但像 这样的正确编码Java、JSPHP我是新手,加上第一次建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>