Дублированный класс "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 != &quot;true&quot;'/>
        </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 для получения дополнительной информации.

Другие вопросы по тегам