Дублированный класс "post-header" в Blogger
Я нахожусь в процессе разработки моей пользовательской темы. Дело в том, что я пытаюсь включить метки постов выше, а дату и время под заголовком. Когда я использую <b:include data=
метод, каждый раз, когда он выводит div с post-header
класс, который, очевидно, не является лучшим решением (есть 2 из них в заголовке одного сообщения). Я также попробовал старый метод с <data:post.timestamp />
, но это дало мне Can't find substitution...
ошибка.
Я пытался читать документы, но не мог найти решение этой проблемы. Буду признателен за любые идеи.
РЕДАКТИРОВАТЬ: Хорошо, поэтому я создал отдельное включение и включил его в пост:
<b:includable id="postTimestamp" var="post">
<div class="post-timestamp">
<data:post.timestamp/>
</div>
</b:includable>
Но теперь у меня есть следующая ошибка в консоли браузера:
<!-- Can't find substitution for tag [post.timestamp] -->
РЕДАКТИРОВАТЬ 2:
Спасибо @Rafv! На самом деле мне уже удалось отобразить метки так, как вы мне это указали, но используя:
<b:include data='{ items: ["timestamp"] }' name='headerBylineOverride'/>
оставляет мне следующую структуру HTML:
<div class="post-container">
<div class="post-labels" />
<h3 class="post-title" />
<div class="post-header" />
<div class="post-body-container" />
</div>
post-header
div это автоматически, я хочу, чтобы это было вручную с другим классом, как post-timestamp
,
РЕДАКТИРОВАТЬ 3:
Оказывается, это удостоверение личности postTimestamp
каким-то образом зарезервировано для стандартного идентификатора включения Blogger. После удаления includable
он работает почти так, как задумано - временная метка генерируется со следующей ошибкой между элементами:
<span class="byline post-timestamp">
<!--Can't find substitution for tag [byline.label]-->
<meta content="URL">
<a class="timestamp-link" href="URL" />
</span>
Спасибо, Лукаш
1 ответ
В некоторых случаях вы не можете использовать <data:.../>
внутри тега. Попробуй это data='{ items: [ "timestamp"] }'
, Ваша разметка должна быть такой:
<b:include data='{ items: ["timestamp"] }' name='headerBylineOverride'/>
Чтобы сделать ярлык над заголовком, просто создайте пользовательский ярлык с новым или другим классом и поместите его над заголовком или найдите (обычно заголовок шаблона блоггера по умолчанию) <div class='post-title-container'>
и поставить над ним. Вот пример:
<div class='labels-post'>
<b:if cond='data:post.labels'>
<b:loop values='data:post.labels' var='label'>
<a expr:href='data:label.url' rel='tag'><data:label.name/></a>
<b:if cond='data:label.isLast != "true"'/>
</b:loop>
</b:if>
</div>
Затем сделайте стиль так, как вы хотите:
.labels-post {
//styling...
}
.labels-post a {
//stuff...
}
А для даты и времени просто поставьте <b:include data='post' name='headerByline'/>
ниже <div class='post-title-container'>
это может сделать вашу метку времени ниже вашего названия.
использование display:none
к элементу или классу, который вы хотите скрыть, если есть его дубликат
Редактировать:
<div class="post-labels" />
<h3 class="post-title" />
<div class="post-header" />
<div class="post-body-container" />
это не тег, посмотрите это или это, и, наконец, вы можете прочитать тег элемента страницы, так же как и расположение тегов виджета от google-blogger doc для получения дополнительной информации.