1

長年の潜伏者、初めての質問者。

現在、タイプに関係なく、すべての投稿の後にウィジェットを埋め込む 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}';

たとえば、キャプションのない写真投稿がある場合、タイトルはブログのタイトルに正しく設定されます。しかし、タイトルのないテキスト投稿がある場合、タイトルはブログのタイトルではなく [空の文字列] に設定されます。

だから私の質問は、テキストまたはチャットの投稿の中にいるときにブログのタイトルを取得するにはどうすればよいですか?

4

1 に答える 1

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'. 写真セットの投稿タイプは常に「写真」として表示されます。クラス名を作成するときにこれに対抗するために私が通常行うことは次のとおりです。

class="type-{PostType}{block:Photoset}set{/block:Photoset}

...そして、出力は になりますclass="type-photoset"

于 2012-08-22T02:48:55.623 に答える