长时间潜伏,第一次问问。
我目前正在为Tumblr博客编写一个自定义主题,以便在每个帖子后嵌入一个小部件,无论其类型如何。这个小部件需要帖子的标题,如果没有,则需要博客的标题。
根据Tumblr,{Title}指的是博客标题。但是,如果我们有文章帖子或聊天帖子,{Title}会引用帖子标题。
这是我的代码:
var title;
if ('{PostType}' === 'text' || '{PostType}' === 'chat')
title = '{Title}';
else if ('{PostType}' === 'photo' || '{PostType}' === 'photoset' || '{PostType}' === 'audio' || '{PostType}' === 'video')
title = '{PlaintextCaption}';
else if ('{PostType}' === 'quote')
title = '{PlaintextQuote}';
else if ('{PostType}' === 'link')
title = '{PlaintextName}';
else if ('{PostType}' === 'answer')
title = '{PlaintextQuestion}';
if (title === '')
title = '{Title}';
如果我有一个没有标题的照片帖子,那么标题将被正确设置为博客标题。但如果我有一个没有标题的文章帖子,那么标题将设置为[空字符串]而不是博客标题。
所以我的问题是:当我在文字或聊天帖子里面时,如何获得博客标题?
答案 0 :(得分:2)
您可以做的是在进入{block:Posts}
之前将博客标题设置为变量。因此,在<head>
中,您可以执行此操作:
var blogTitle = '{Title}';
然后像这样修改你的代码:
var title;
if ('{PostType}' === 'text' || '{PostType}' === 'chat')
title = blogTitle;
else if ('{PostType}' === 'photo' || '{PostType}' === 'photoset' || '{PostType}' === 'audio' || '{PostType}' === 'video')
title = '{PlaintextCaption}';
else if ('{PostType}' === 'quote')
title = '{PlaintextQuote}';
else if ('{PostType}' === 'link')
title = '{PlaintextName}';
else if ('{PostType}' === 'answer')
title = '{PlaintextQuestion}';
if (title === '')
title = '{Title}';
另外,请注意,因为{PostType}
永远不会== 'photoset'
。 Photoset帖子类型总是以“照片”的形式出现。在制作类名时我通常采取的措施是:
class="type-{PostType}{block:Photoset}set{/block:Photoset}
...输出将为class="type-photoset"
。