Можете ли вы настроить свой блог так, чтобы он показывал только самую первую метку сообщения в Blogger?


У меня есть некоторый опыт в HTML и CSS, но правильное кодирование, такое как Java, JS и PHP, я новичок, плюс это первый раз, когда я построил шаблон/сайт блоггера с нуля, поэтому это много проб и ошибок. Я пытался найти ответ, но не мог найти ответ, который, как мне казалось, имел бы отношение к тому, что я искал.

Как правило, мы знаем, что виджет Blog1 будет показывать ваш последний пост в полном объеме на целевая страница вместе с деталями автора, комментариями и метками в нижнем колонтитуле. Мой вопрос : Можете ли вы изменить код, чтобы вызвать только первую метку, которая будет отображаться в нижней части сообщения?

Стандартно это синтаксис, используемый для вызова списка меток в родной кодировке блоггера:

 <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:, чтобы сказать a b: include, остановит блоггера, призывающего больше ярлыков, и, возможно, остановится только на одном, но когда я изменил это он в основном остановил весь блог от отображения!

Все, что я хочу, чтобы это было "Labels: Label1" вместо "Labels: Label1, Label2, Label3 и т. д.", не прибегая к ограничению количества ярлыков только одним.

Заранее благодарю всех, кто откликается и помогает.

Марк

2 5

2 ответа:

Можно использовать атрибут index, который дает нулевой индекс меток post через цикл

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

Обновление: гораздо более простой способ достичь того, что вам требуется, можно сделать с помощью этого кода -

<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, чтобы напечатать этикетку, только если она последняя в посте (если есть только одна этикетка, то она будет напечатана). Блогер расставляет ярлыки в алфавитном порядке и не предоставляет любой контроль над изменением порядка сортировки.

Например, если сообщение имеет следующие метки "метки: A, B, C" , то после изменения кода на указанный выше, конечный результат будет "метки: C"