如何在Tumblr主题中访问Post Slug?

时间:2011-10-25 09:20:28

标签: tumblr

我想在我的Tumblr主题中写一个规范标签,我需要用于(完整)网址的slug。如何访问模板中的posts-slug?我只能访问PostId。我目前的代码如下:

<link rel="canonical" href="http://domain.com/blog/{block:PostTitle}post/{PostID}{/block:PostTitle}" />

我想拥有的是这样的:

<link rel="canonical" href="http://domain.com/blog/{block:PostTitle}post/{PostID}/{PostSlug}{/block:PostTitle}" />

我尝试了以下标签(显然不起作用......):

{slug}
{PostSlug}
{Postslug}

令我感到有趣的是,API会在每个帖子上发出一个slug-key,请尝试:

http://(YOU).tumblr.com/api/read?debug=1

感谢任何提示和建议。

编辑:我已经扫描了http://www.tumblr.com/docs/en/custom_themes以获取提示 - 但没有发现任何有用的内容。

1 个答案:

答案 0 :(得分:2)

在Tumblr的主题DSL中,post slug无法作为令牌使用。我不确定这是否是故意遗漏,因为post slugs在Tumblr上是可选的(你可以手动设置一个,但如果你没有你的帖子只是按其数字ID)。但是,您可以从the {Permalink} token插入的链接中解析它,即将其包含在模板中的某些隐藏元素中

<span class="permalink-url">{Permalink}</span>

(如果愿意,隐藏跨度),然后使用JavaScript检索并解析它:

var plTags = document.querySelectorAll('.permalink-url');
for (i = 0; i <= plTags.length; i++) {
    postSlug=plTags[i].replace(/.+\//, '');
    // do whatever you want with the slug
}