「WordPressで学ぶPHP(2)データ構造(配列・オブジェクト)編」を発売しました。
本書は「WordPressで学ぶPHP(1)変数・制御構造編」の続編にあたり、PHPの「データ構造」(配列とオブジェクト)について解説します。
配列やオブジェクトは、頭の中で考えるだけでは、イメージがつかみにくいです。本書では図を多用して、配列やオブジェクトをなるべく分かりやすく解説することを心がけました。
Kindle本で、定価250円です。
PHPUtilプラグイン(その3・日時関係の処理)
PHPUtilプラグインでは、ページにアクセスがあった日時を元にして、出力を変えるテンプレートタグもあります。
それらについて解説します。
1.MTPHPDateタグ
MTPHPDateタグは、ページにアクセスがあった日時を出力するテンプレートタグ(ファンクションタグ)です。
Movable Type標準の日付系テンプレートタグと同様に、formatモディファイアで出力をカスタマイズすることができます。
例えば、「現在の日時は〇〇年〇〇月〇〇日 〇〇時〇〇分〇〇秒です」のように出力したい場合、以下のようにテンプレートに記述します。
現在の日時は<$mt:PHPDate format="%Y年%m月%d日 %H時%M分%S秒"$>です
この部分を含むページを開くと、その都度現在の日時が表示されます。
2.MTPHPIfDateタグ
MTPHPIfDateタグは、現在の日時が一定期間内に入っているかどうかを調べ、入っていればタグのブロック内を出力するブロックタグです。
以下の4つのモディファイアで、日付の範囲を指定します。
また、日付は「20120123123456」のように、年は4桁、月/日/時/分/秒はそれぞれ2桁で指定します。
モディファイア | 判断する条件 |
---|---|
lt="比較日時" | 現在の日時が比較日時より前(比較日時ちょうどは含まない) |
gt="比較日時" | 現在の日時が比較日時より後(比較日時ちょうどは含まない) |
le="比較日時" | 現在の日時が比較日時より前(比較日時ちょうども含む) |
ge="比較日時" | 現在の日時が比較日時より後(比較日時ちょうども含む) |
例えば、以下のように書くと、MTPHPIfDateタグのブロックの中身は、2012年3月1日より前の間だけ表示されます。
<mt:PHPIfDate lt="20120301000000"> 2012年3月1日より前の時だけ表示する内容 </mt:PHPIfDate>
また、モディファイアを2つ指定して、一定期間内だけブロック内を表示するようにすることもできます。
例えば、以下のように書くと、MTPHPIfDateタグのブロックの中身は、2012年3月1日0時0分0秒から、2012年3月8日0時0分0秒になる直前の間だけ表示されます。
<mt:PHPIfDate ge="20120301000000" lt="20120308000000"> 2012年3月1日0時0分0秒~2012年3月8日0時0分0秒の間だけ表示する内容 </mt:PHPIfDate>
なお、比較日時は、最後の秒から順に省略することができます。
時/分/秒を省略した場合は、「00」を指定したものとみなします。
また、日/月を省略した場合は、「01」を指定したものとみなします。
例えば、「<mt:PHPIfDate ge="201203" lt="201204">」と書くと、2012年3月1日0時0分0秒から、2012年4月1日0時0分0秒になる直前まで、つまり2012年3月中だけ、何かを出力することができます。
3.MTPHPIfDateDiffタグ
MTPHPIfDateDiffタグは、あるテンプレートタグの日時から現在の日時までの経過時間を調べ、それが一定範囲内に入っている時だけ、タグのブロック内を出力するブロックタグです。
書き方は以下のようになります。
<mt:PHPIfDateDiff tag="比較対象のテンプレートタグ" 比較モディファイア="経過時間"> 条件を満たしている時に出力する内容 </mt:PHPIfDateDiff>
「比較対象のテンプレートタグ」には、現在の日時と比較したい日時を表すテンプレートタグ名を指定します。
ただし、先頭の「MT」は書きません。
例えば、ブログ記事の公開日時と現在の日時を比較したい場合、「tag="EntryDate"」と書きます。
「比較モディファイア」には、MTPHPIfDateタグと同様に、lt/gt/le/geのいずれか(またはそれらの中の2つ)を指定します。
また、経過時間は「1d」「3m」のような書き方で表します。「d」等の単位の意味は以下の通りです。
「1d12h」のように、複数の単位を並べて指定することもできます。
単位 | 意味 |
---|---|
w | 週 |
d | 日 |
h | 時 |
m | 分 |
s | 秒 |
例えば、ブログ記事を公開してから1週間だけ、「New」のマークを表示したいとします。
この場合、MTEntriesタグのブロックの中や、ブログ記事アーカイブテンプレートの中などで、Newのマークを出力したい位置に以下のようなタグを入れます。
<mt:PHPIfDateDiff tag="EntryDate" le="1w"> Newマークを出力するHTML </mt:PHPIfDateDiff>
4.MTPHPElseタグ
MTPHPIfDate/MTPHPIfDateDiffタグで、条件を満たす時と満たさない時とで出力を分けたい場合は、MTPHPElseタグを使って以下のように書きます。
<mt:PHPIfDateまたはmt:PHPIfDateDiff ・・・> 条件を満たす時に出力する部分 <mt:PHPElse> 条件を見たさない時に出力する部分 </mt:PHPIfDateまたはmt:PHPIfDateDiff>
5.PHPUtilプラグイン関係の記事の一覧
PHPUtil関係のその他の記事は、以下のリンクから参照できます。
- PHPUtilプラグイン(その1・概要とインストール)
- PHPUtilプラグイン(その2・ファイルの読み込み)
- PHPUtilプラグイン(その3・日時関係の処理)
- PHPUtilプラグイン(その4・ユーザーエージェントの判断)
- PHPUtilプラグイン(その5・変数の基本)
- PHPUtilプラグイン(その6・変数の計算)
- PHPUtilプラグイン(その7・配列の利用)
- PHPUtilプラグイン(その8・配列関係の関数)
- PHPUtilプラグイン(その9・ハッシュの利用)
- PHPUtilプラグイン(その10・GET/POSTされた値を得る)
- PHPUtilプラグイン(その11・条件判断前半)
- PHPUtilプラグイン(その12・条件判断後半)
- PHPUtilプラグイン(その13・一定回数の繰り返し)
- PHPUtilプラグイン(その14・配列/ハッシュの出力)
- PHPUtilプラグイン(その15・条件による繰り返し)
- PHPUtilプラグイン(その16・繰り返しを途中で抜ける)
- PHPUtilプラグイン(その17・関数の実行)
- PHPUtilプラグイン(その18・各種のグローバルモディファイア)