「WordPressで学ぶPHP(2)データ構造(配列・オブジェクト)編」を発売しました。
本書は「WordPressで学ぶPHP(1)変数・制御構造編」の続編にあたり、PHPの「データ構造」(配列とオブジェクト)について解説します。
配列やオブジェクトは、頭の中で考えるだけでは、イメージがつかみにくいです。本書では図を多用して、配列やオブジェクトをなるべく分かりやすく解説することを心がけました。
Kindle本で、定価250円です。
Data APIでテンプレートタグの値を使うプラグイン(その2・テンプレートの作成と利用)
昨日に続き、Data APIでテンプレートタグの値を使うプラグインの使い方を解説します。
今日は、テンプレートの作成と、エンドポイントにアクセスする際にそのテンプレートの出力を得る方法を解説します。
1.テンプレートモジュールの新規作成
まず、テンプレートモジュールを新規作成します。
通常は、Data APIでアクセスするブログ(またはウェブサイト)に、テンプレートモジュールを作ります。
例えば、Data APIでIDが1番のブログの情報を得る場合、そのID=1のブログにテンプレートモジュールを作ります。
そして、「DataAPI再構築」のカスタムフィールドのチェックをオンにします。
このチェックをオンにすることで、Data APIを通してテンプレートモジュールを動的に再構築することができるようになります。
2.テンプレートタグの結果を変数に代入する
次に、テンプレートモジュールの中身を作ります。
テンプレートタグの出力を変数に代入すると、それがData APIに渡されます。
例えば、Data APIで記事を取得する際に、前後の記事のアドレスも必要だとします。
この場合、テンプレートモジュールに以下のように書き、前後の記事のアドレスを、previous_link/next_linkの各変数に代入します。
<mt:EntryPrevious> <$mt:EntryPermalink setvar="previous_link"$> </mt:EntryPrevious> <mt:EntryNext> <$mt:EntryPermalink setvar="next_link"$> </mt:EntryNext>
なお、利用できるテンプレートタグは、そのオブジェクトに関係するものです。
例えば、Data APIで記事を取得した場合、記事に関するテンプレートタグ(MTEntry系)を使うことができます。
3.エンドポイントにアクセスする
この状態で、「rebuildTemplateName=テンプレートモジュール名」のパラメータを付けて、エンドポイントにアクセスします。
すると、Data APIで取得した個々のオブジェクトに対して、テンプレートを再構築し、その結果も含めてJSONが返されます。
例えば、手順2で挙げたテンプレートモジュールに、「DataAPI Entry」という名前を付けたとします。
この状態で、IDが1番のブログの記事を読み込む場合、以下のようなアドレスにアクセスします。
http://your-host/path-to-mt/mt-data-api.cgi/vi/sites/1/entries?rebuildTemplateName=DataAPI%20Entry
JSONの個々のオブジェクトに「rebuildResult」というプロパティが追加され、その下の階層に個々の変数の値が代入されます。
例えば、上の例のアドレスにアクセスした場合、得られるJSONは以下のような形になります。
{ "totalResults": 見つかった記事の数, "items": [ { "title": 記事1のタイトル, "body": 記事1の本文, ・・・ "rebuildResult": { "previous_link": 記事1の前の記事のアドレス, "next_link": 記事1の次の記事のアドレス }, ・・・ }, { "title": 記事2のタイトル, "body": 記事2の本文, ・・・ "rebuildResult": { "previous_link": 記事2の前の記事のアドレス, "next_link": 記事2の次の記事のアドレス }, ・・・ }, ・・・ ] }