Как получить доступ к Post Slug в теме Tumblr? - PullRequest
2 голосов
/ 25 октября 2011

Я хочу добавить канонический тег в мою тему Tumblr, и мне нужен слаг для (полного) URL. Как я могу получить доступ к 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 для каждого сообщения, попробуйте:

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

Спасибо за любые подсказки и предложения.

Редактировать: я уже отсканировал http://www.tumblr.com/docs/en/custom_themes на подсказки - но не нашел ничего полезного.

1 Ответ

2 голосов
/ 11 мая 2012

Почтовый слаг недоступен в качестве токена в теме DSL Тумблера.Я не уверен, является ли это преднамеренным упущением, поскольку пост-слагы на Tumblr являются необязательными (вы можете установить их вручную, но если вы этого не сделаете, ваше сообщение просто идет по числовому идентификатору).Однако вы можете разобрать его по ссылке, вставленной с помощью токена {Permalink} , то есть включить его в какой-то скрытый элемент в шаблоне в соответствии с

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

(скрыть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
}
...