日付に関するテンプレートタグで「月」が1桁の場合はスペースを追加する
かなり基本的な内容ですが、ソースをコピペできるようにという意味でエントリーしておきます。
Movable Type では、 MTEntryDateなど日付に関するテンプレートダグがいくつか用意されています。
それらのテンプレートタグには、format モディファイアなどにパラメーターを指定することで、様々な表示形式にすることができます。しかし、これらのパラメーターの中には、「日」に関しては、1桁の場合(1日〜9日)は0が付加されるもとの空白が付加されるパラメーターがありますが、「月」に関しては、1桁の場合(1月〜9月)は0が付加されるものしかありません。
前置きが長くなりましたが、今回は、MTIf タグを使って条件分岐する方法で、1桁の「月」の場合に空白を付加します。
1桁の「月」の場合に空白を付加する
完成したテンプレートは以下の通りです。見やすいように改行しています。
<$mt:EntryDate format="%Y" cat="年"$>
<$mt:EntryDate format="%b" setvar="entry_date"$>
<mt:If name="entry_date" lt="10"> </mt:If>
<$mt:GetVar name="entry_date" cat="月"$>
<$mt:EntryDate format="%e" cat="日"$>
MTIfタグの ltモディファイアで、「10より小さい場合」という条件を与えています。
catモディファイアは、出力する値の末尾に指定した文字列を追加するグローバルモディファイアです。catモディファイアを利用せずに直接「年」「月」「日」を書いても良いと思いますが、この方がスッキリする気がします。
設定例
例えば、企業サイトのトップページなどで良くある新着情報リストは以下のようになります。
<mt:Entries lastn="5">
<mt:EntriesHeader><dl></mt:EntriesHeader>
<dt><$mt:EntryDate format="%Y" cat="年"$><$mt:EntryDate format="%b" setvar="entry_date"$><mt:If name="entry_date" lt="10"> </mt:If><$mt:GetVar name="entry_date" cat="月"$><$mt:EntryDate format="%e" cat="日"$></dt>
<dd><a href="<$mt:EntryPermalink$>"><$mt:EntryTitle encode_html="1"$></a></dd>
<mt:EntriesFooter></dl></mt:EntriesFooter>
</mt:Entries>
実際に再構築してみると以下の通りです。横並びはCSSで調整しています。
- 2012年 1月26日
- はじめての DynamicMTML #10 - クエリを処理する4つのテンプレートタグ
- 2012年 1月25日
- JavaScript で連番の文字列を簡単に作る
- 2012年 1月24日
- Movable Type のカスタムフィールド一覧ですべてのテンプレートタグをまとめてコピーしたい
- 2012年 1月23日
- AND 検索のテンプレートを修正しました
- 2012年 1月21日
- はじめての DynamicMTML #09 - MTSearchEntries (5) MTReferralKeywords で検索サイトからの流入に対する関連記事を表示する
Webサイトのフォントに等幅を指定しない限り、きちっとは揃いませんが、1桁の「月」も見やすくなると思います。
これに「Movable Type のブログ記事の公開日時を年号(元号)で表示する」方法を使えば、以下のようになります。
- 平成21年 1月26日
- はじめての DynamicMTML #10 - クエリを処理する4つのテンプレートタグ
- 平成21年 1月25日
- JavaScript で連番の文字列を簡単に作る
- 平成21年 1月24日
- Movable Type のカスタムフィールド一覧ですべてのテンプレートタグをまとめてコピーしたい
- 平成21年 1月23日
- AND 検索のテンプレートを修正しました
- 平成21年 1月21日
- はじめての DynamicMTML #09 - MTSearchEntries (5) MTReferralKeywords で検索サイトからの流入に対する関連記事を表示する
以上です。
トラックバック
The trackback URL is "".



コメントする