「WordPressで学ぶPHP(2)データ構造(配列・オブジェクト)編」を発売しました。
本書は「WordPressで学ぶPHP(1)変数・制御構造編」の続編にあたり、PHPの「データ構造」(配列とオブジェクト)について解説します。
配列やオブジェクトは、頭の中で考えるだけでは、イメージがつかみにくいです。本書では図を多用して、配列やオブジェクトをなるべく分かりやすく解説することを心がけました。
Kindle本で、定価250円です。
イベントカレンダープラグイン(その6・イベント一覧の静的出力)
少し間が空きましたが、イベントカレンダープラグインの使い方の続きです。
今日は、イベントの一覧を静的に出力する方法を解説します。
イベントの一覧を静的に出力するテンプレートタグとして、以下の4つのテンプレートタグがあります。
1.MTFutureEventEntriesタグ
これから開催予定のイベントの一覧を出力するブロックタグです。
再構築時点の日時を基準に、開始日時がそれ以後になっているイベントを出力します。
デフォルトでは、現在の日時に近いイベント10件を、開始日時の新しいもの(より将来のもの)から順に出力します。
MTFutureEventEntriesタグのブロックの中では、MTEntry系のテンプレートタグを使って、個々のイベント(の記事)の情報を出力します。
例えば、これから開催予定のイベントのタイトルを、ul/li要素のリストで出力するには、以下のようなテンプレートを組みます。
<mt:FutureEventEntries> <mt:EntriesHeader><ul></mt:EntriesHeader> <li><$mt:EntryTitle$></li> <mt:EntriesFooter></ul></mt:EntriesFooter> </mt:FutureEventEntries>
2.MTPastEventEntriesタグ
最近終了したイベントの一覧を出力するブロックタグです。
再構築時点の日時を基準に、終了日時がそれ以前になっているイベントを出力します。
MTFutureEventEntriesタグと同様に、デフォルトでは、現在の日時に近いイベント10件を、開始日時の新しいもの(より将来のもの)から順に出力します。
また、MTPastEventEntriesタグのブロックの中では、MTEntry系のテンプレートタグを使って、個々のイベント(記事)の情報を出力します。
3.MTCurrentEventEntriesタグ
現在開催中のイベントの一覧を出力するブロックタグです。
再構築時点の日時が、イベントの開始日時から終了日時の間に入っているものを出力します。
4.MTCurrentOrFutureEventEntriesタグ
現在開催中と今後開催予定のイベントをまとめて出力するブロックタグです。
再構築時点の日時を基準に、終了日時がそれ以降になっているイベントを出力します。
出力するイベントが異なることを除けば、MTFutureEventEntriesタグと同じ動作です。
5.MTPeriodEventEntriesタグ
イベントの開催期間が、指定した期間に重なっているものを出力するブロックタグです。
ブロックの中では、MTEntry系のテンプレートタグで、イベント(の記事)の情報を出力します。
以下の3つのどれかを満たすイベントが出力されます。
- イベントの開始日時が指定の期間内に入っている
- イベントの終了日時が指定の期間内に入っている
- イベントの開始日時が指定の期間より前で、終了日時が指定の期間より後
例えば、期間を2014年4月1日から4月30日とした場合、以下のようなイベントが出力されます。
- 開始日時が2014年4月1日から4月30日の間に入っているイベント
- 終了日時が2014年4月1日から4月30日の間に入っているイベント
- 開始日時が2014年4月1日より前で、終了日時が2014年4月30日より後のイベント
期間は「start_date="YYYYMMDD"」と「end_date="YYYYMMDD"」のモディファイアで指定します。
YYYYは年、MMは月、DDは日です。
MMとDDは、1月は5日など10の位が0の時は、「01」「05」のように10の位に0を付けます。
例えば、2014年4月1日から2014年4月30日に開催されるイベントを読み込み、そのタイトルをul/li要素のリストで出力するには、以下のようにテンプレートを組みます。
<mt:PeriodEventEntries start_date="20140401" end_date="20140430"> <mt:EntriesHeader><ul></mt:EntriesHeader> <li><$mt:EntryTitle$></li> <mt:EntriesFooter></ul></mt:EntriesFooter> </mt:PeriodEventEntries>
6.モディファイア
上記の各テンプレートタグでは、モディファイアで出力をカスタマイズすることができます。
以下のモディファイアがあります。
モディファイア | 動作 |
---|---|
lastn="○" | 開始日時が新しいイベントから順に○件読み込みます。 |
firstn="○" | 開始日時が古いイベントから順に○件読み込みます。 |
sort_order="ascend" | 読み込んだイベントを開始日時の古い順に出力します。 |
category="○○○" | ○○○カテゴリに属するイベントを出力します。 複数のカテゴリのどれかに属するイベントを出力したい場合は、カテゴリ名をコンマで区切って並べます。 |
category_id="○○○" | IDが○○○のカテゴリに属するイベントを出力します。 複数のカテゴリのどれかに属するイベントを出力したい場合は、カテゴリのIDをコンマで区切って並べます。 |
author="○○○" | ユーザー○○○が作成したイベントを出力します。 複数のユーザーのうちの誰かが作成したイベントを出力したい場合は、ユーザー名をコンマで区切って並べます。 |
author_id="○○○" | IDが○○○のユーザーが作成したイベントを出力します。 複数のユーザーのうちの誰かが作成したイベントを出力したい場合は、ユーザーのIDをコンマで区切って並べます。 |
tag="○○○" | ○○○のタグが付けられているイベントを出力します。 複数のタグのどれかが付けられているイベントを出力したい場合は、タグ名をコンマで区切って並べます。 |
tag_id="○○○" | IDが○○○のタグが付けられているイベントを出力します。 複数のタグのどれかが付けられているイベントを出力したい場合は、タグのIDをコンマで区切って並べます。 |
start_date_from="YYYYMMDD" | 開始日時がYYYY年MM月DD日以降のイベントを出力します。 |
start_date_to="YYYYMMDD" | 開始日時がYYYY年MM月DD日以前のイベントを出力します。 |
end_date_from="YYYYMMDD" | 終了日時がYYYY年MM月DD日以降のイベントを出力します。 |
end_date_to="YYYYMMDD" | 終了日時がYYYY年MM月DD日以前のイベントを出力します。 |