Можете ли вы настроить свой блог так, чтобы он показывал только самую первую метку сообщения в 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 ответа:
Можно использовать атрибут
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"