我正在开发自定义主题。问题是我试图在上面添加帖子标签,并在标题下面添加日期时间戳。
当我使用<b:include data=
方法时,每次使用post-header
类输出div时,这显然不是最佳解决方案(单个帖子标题中有2个)。我还尝试使用<data:post.timestamp />
的旧方法,但它给了我Can't find substitution...
错误。
我试图阅读文档,但无法找到解决方法。我很欣赏任何想法。
编辑: 是的,所以我创建了单独的includable并将其包含在帖子中:
<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:
事实证明,ID postTimestamp
以某种方式保留给标准Blogger包含ID。删除includable
之后,它几乎按预期工作 - 正在生成时间戳,并在元素之间出现以下错误:
<span class="byline post-timestamp">
<!--Can't find substitution for tag [byline.label]-->
<meta content="URL">
<a class="timestamp-link" href="URL" />
</span>
谢谢, 卢卡斯
答案 0 :(得分:0)
在某些情况下,您无法在代码中使用<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" />
不是代码,请参阅this或this, 最后你可以通过google-blogger doc阅读page element tag以及widget tag layout了解更多信息