在blogger xml中定义循环计数

问题描述 投票:3回答:5
<b:if cond='data:post.labels'>
  <b:loop values='data:post.labels' var='label'>
    <data:label.name/>
    ,
  </b:loop>
</b:if>

此循环列出帖子中的所有标签,

是否可以通过控制循环来限制显示的标签数量(定义循环计数)?

例如:帖子中共有7个标签,但我只想显示前3个。

xml label blogger
5个回答
0
投票

不,不可能在Blogger模板XML中创建新的可变数据并为其赋值。 Google没有提供相关信息的文档。 Blogger模板XML不是为它而设计的。


0
投票

这对我有用:

<b:if cond='data:post.labels'>
  <b:loop values='data:post.labels' var='label' index='x'>
    <b:if cond='data:x==0'><data:label.name/>, </b:if>
    <b:if cond='data:x==1'><data:label.name/>, </b:if>
    <b:if cond='data:x==2'><data:label.name/></b:if>
  </b:loop>
</b:if>

或者只是使用<>(分别编码为&lt;&gt;):

<b:if cond='data:post.labels'>
  <b:loop values='data:post.labels' var='label' index='x'>
    <b:if cond='data:x&lt;=2'><data:label.name/>, </b:if>
  </b:loop>
</b:if>

0
投票

这个将显示您的前三个标签(计数从零开始)。还包括2个逗号,第三个标签没有逗号。

<b:loop values='data:post.labels' var='label' index='x'>
  <b:if cond='data:x &#60;=2'>
    <a class='sfa-tag' expr:href='data:label.url' rel='tag'>
      <data:label.name/>
    </a>
    <b:if cond='data:x &#60;=1'>,</b:if>
  </b:if>
</b:loop>

0
投票

这是一个简单的解决方案:

<b:if cond='data:post.labels'>
  <b:loop values='data:post.labels' var='label' index='sth'>
    <b:if cond='data:sth&lt;3'>
    <data:label.name/> ,
    </b:if>
  </b:loop>
</b:if>

在博主:< = &lt;> = &gt;

并且我使用了这个语句:sth&lt;3这意味着sth<3,因此循环将重复3次,因此,3个条目应该出现(因为循环从0开始)

您还可以创建一个范围添加新语句,如下所示:

<b:if cond='data:post.labels'>
  <b:loop values='data:post.labels' var='label' index='sth'>
    <b:if cond='data:sth&lt;6 and data:sth&gt;2'>
    <data:label.name/> ,
    </b:if>
  </b:loop>
</b:if>

上面的代码将显示从3rd loop5th loop的3个标签。


0
投票

可以直接将limit关键字后跟数字添加到values字段

<b:if cond='data:post.labels'>
  <b:loop values='data:post.labels limit 3' var='label'>
    <data:label.name/>
    ,
  </b:loop>
</b:if>
© www.soinside.com 2019 - 2024. All rights reserved.