Movable Typeのコンテンツデータで公開日を比較する方法
Tag:[]
Movable Typeのコンテンツデータで公開日を比較する方法を紹介します。
1.はじめに
この記事で紹介するテンプレートは次のとおりです。
コンテンツデータの公開日(年月日)と再構築日(年月日)を比較し、
- 公開日より再構築日の方が古い場合:「この記事は未来のものです」を表示
- 公開日より再構築日の方が古い場合:「この記事は過去のものです」を表示
- 公開日と再構築日が同じ場合:「この記事は現在のものです」を表示
をそれぞれ出力します。
2.テンプレート
コンテンツデータ公開日のタイムスタンプを比較するテンプレートは下記になります。
<$mt:ContentDate format="%Y%m%d" setvar="content_date"$>
<$mt:Date format="%Y%m%d" setvar="publish_date"$>
<mt:If name="content_date" gt="$publish_date">
この記事は未来のものです
<mt:ElseIf name="content_date" lt="$publish_date">
この記事は過去のものです
<mt:Else eq="Date">
この記事は現在のものです
</mt:If>
このテンプレートはコンテンツタイプアーカイブに張り付けてください。
3.テンプレートの解説
まず、コンテンツデータの公開日(年月日)を、MTContentDateタグとsetvarモディファイアを使って、変数content_dateに保存します。年月日は数値として比較できるよう、formatモディファイアに"%Y%m%d"を設定し、"20210827"という風にに出力されるようにします。
<$mt:ContentDate format="%Y%m%d" setvar="content_date"$>
次に再構築された年月日を、MTDateタグとsetvarモディファイアを使って、変数publish_dateに保存します。その他は上の設定と同じです。
<$mt:Date format="%Y%m%d" setvar="publish_date"$>
保存した2つの変数を比較します。最初のMTIfタグには次のように設定します。
<mt:If name="content_date" gt="$publish_date">
MTIfタグのnameモディファイアに変数content_date、gtモディファイアに変数publish_dateを設定します。
nameモディファイアに変数を記述するときはそのままでいいですが、gtモディファイアに変数を設定する場合は変数名の前に"$"を付与してください。
これで「変数content_dateの値が変数publish_dateの値より大きいか?」という判定になります。大きい場合はMTIfタグの中の処理を実行し、
この記事は未来のものです
を出力します。
次のMTElseIfタグには次のように設定します。
<mt:ElseIf name="content_date" lt="$publish_date">
MTElseIfタグにはMTIfタグと同じように条件を設定することができます。ltモディファイアにはgtモディファイアと同じように変数の先頭んに"$"を付与します。
これで「変数content_dateの値が変数publish_dateの値より小さいか?」という判定になります。小さい場合はMTIfタグの中の処理を実行し、
この記事は過去のものです
を出力します。
最後のMTElseタグは、上記の2つの判定条件のいずれにもマッチしなかった場合(=2つの変数の値が等しい場合)に実行されます。
<mt:Else eq="Date">
この条件が実行されると、
この記事は現在のものです
を出力します。
4.注意事項
スタティックパブリッシングの場合、MTDateタグの情報を更新させるため、日毎の再構築が必要です。
- MT7テンプレート作成画面に表示される「コンテンツタイプ」「コンテンツフィールド」の意味
- Movable Typeでテンプレートの動作を簡単に確認する方法
- Movable Typeでスマホサイト用トップページをPCサイト用トップページと異なるURLにする方法
- Movable TypeでCSSファイルやJavaScriptファイルなどを管理するためのTips
- Movable Type 4.2 テンプレートセット(コミュニティ用)修正
- Movable Type 4.2 テンプレートセット(コミュニティブログ対応版)修正
- Movable Type 4.2 テンプレートセット(コミュニティブログ対応版)
- Movable Type 4.2 配布テンプレートセット修正(カテゴリーアーカイブ・コメント完了)
- Movable Type 4.2 テンプレートセット修正(アーカイブインデックス追加等)
- Movable Type 4.2 テンプレートセット修正
- Movable Type 4.1 テンプレートセット修正
- 「iPhoneテンプレートfor MT」 by cremadesign
- Movable Type 4.1 テンプレートセット(スタイル対応版)
- 小粋空間テンプレートセットのカラムレイアウト変更方法
- Movable Type 4.1 テンプレートセット