日付に関するテンプレートタグで「月」が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:GetVar name="entry_date" cat="月"$>
<$mt:EntryDate format="%e" cat="日"$>
MTIfタグの ltモディファイアで、「10より小さい場合」という条件を与えています。
catモディファイアは、出力する値の末尾に指定した文字列を追加するグローバルモディファイアです。catモディファイアを利用せずに直接「年」「月」「日」を書いても良いと思いますが、この方がスッキリする気がします。
設定例
例えば、企業サイトのトップページなどで良くある新着情報リストは以下のようになります。
<$mt:EntryDate format="%Y" cat="年"$><$mt:EntryDate format="%b" setvar="entry_date"$> <$mt:GetVar name="entry_date" cat="月"$><$mt:EntryDate format="%e" cat="日"$>
<$mt:EntryTitle encode_html="1"$>
実際に再構築してみると以下の通りです。横並びはCSSで調整しています。
<$mt:EntryDate format="%Y" cat="年"$><$mt:EntryDate format="%b" setvar="entry_date"$><$mt:GetVar name="entry_date" cat="月"$><$mt:EntryDate format="%e" cat="日"$> <$mt:EntryTitle encode_html="1"$>
Webサイトのフォントに等幅を指定しない限り、きちっとは揃いませんが、1桁の「月」も見やすくなると思います。
これに「Movable Type のブログ記事の公開日時を年号(元号)で表示する」方法を使えば、以下のようになります。
<$mt:EntryDate format="%Y%m%d"$><$mt:EntryDate format="%Y"$>昭和<$mt:GetVar name="entry_date_nengou"$>年<$mt:EntryDate format="%Y"$>平成元年<$mt:EntryDate format="%Y"$>平成<$mt:GetVar name="entry_date_nengou"$>年<$mt:GetVar name="entry_date_nengou"$><$mt:EntryDate format="%b" setvar="entry_date"$><$mt:GetVar name="entry_date" cat="月"$><$mt:EntryDate format="%e" cat="日"$> <$mt:EntryTitle encode_html="1"$>
以上です。