「WordPressで学ぶPHP(4)通信編」を発売しました。
本書は、「WordPressで学ぶPHP(1)変数・制御構造編」「WordPressで学ぶPHP(2)データ構造編」「WordPressで学ぶPHP(3)関数編」の続編にあたり、Webブラウザとサーバー(PHP)との通信と、PHPから他のサーバーに通信することについて解説します。
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の次の記事のアドレス }, ・・・ }, ・・・ ] }