「WordPressで学ぶPHP(3)関数編」を発売しました。
本書は「WordPressで学ぶPHP(1)変数・制御構造編」「WordPressで学ぶPHP(2)データ構造(配列・オブジェクト)編」の続編にあたり、PHP組み込みの関数や、独自の関数を作る方法などを解説します。
Kindle本で、定価400円です。
SearchEntriesプラグイン(Data API対応その2・基本的な使い方)
昨日に続き、SearchEntriesプラグインをData APIで使う方法を解説します。
今日は基本的な使い方です。
1.検索条件用のテンプレートモジュールの作成
まず、検索条件を指定するためのテンプレートモジュールを作成します。
検索対象のブログ(またはウェブサイト)でテンプレートモジュールを新規作成し、MTSearchConditionsタグのブロックを入れて、検索条件を指定します。
検索条件の書き方は、従来のバージョンと同じです。
詳しくは、SearchEntriesプラグインの解説のページを参照してください。
例えば、「タイトルに『MT』を含み、2014年1月以降に書いた記事」を検索する場合だと、テンプレートモジュールに以下のようなタグを入れます。
<mt:SearchConditions> <$mt:SearchConditionLike field="title" values="MT"$> <$mt:SearchConditionCompare field="authored_on" ge="20140101000000"$> </mt:SearchConditions>
複数ブログ(ウェブサイト)を検索対象にすることもできます。
この場合、それらの中で主となるブログ(ウェブサイト)にテンプレートモジュールを作り、MTSearchConditionsタグにinclude_blogs等のモディファイアを指定して、検索対象のブログ(ウェブサイト)を指定します。
例えば、ウェブサイト配下のすべてのブログを検索対象にしたい場合、ウェブサイトにテンプレートモジュールを作り、MTSearchConditionsタグに「include_blogs="children"」のモディファイアを指定します。
なお、MTSearchLimitタグ/MTSearchOffsetタグは使用できません。
これらはData APIのlimit/offsetのパラメータで指定します。
2.Data APIでの検索を許可
テンプレートを入力し終わったら、保存する際に、DataAPI検索のカスタムフィールドのチェックボックスをオンにします。
これで、このテンプレートはDataAPIを通して検索できる状態になります。
3.エンドポイントにアクセス
ここまでの作業が終わったら、以下のようなエンドポイントにアクセスして、検索結果が返ってくることを確認します
なお、アドレスを読みやすくするために改行を入れていますが、実際には1行につなげます。
http://your-host/path-to-mt/mt-data-api.cgi/v1/search_entries ?templateBlogId=ブログID &templateName=テンプレート名
上記のアドレスのうち、以下の箇所をご自分の環境に応じて書き換えます。
書き換える箇所 | 内容 |
---|---|
your-host | Movable Typeのインストール先のサイトのアドレス |
path-to-mt | Movable Typeのインストール先ディレクトリ |
ブログID | 検索条件用のテンプレートモジュールがあるブログ(またはウェブサイト)のID |
テンプレート名 | 検索条件用のテンプレートモジュールの名前をURLエンコードした値 |
例えば、以下のような環境があるとします。
your-host | www.foo.com |
---|---|
path-to-mt | mt6 |
ブログID | 1 |
テンプレート名 | DataAPI検索 |
この場合、以下のようなアドレスにアクセスします。
http://www.foo.com/mt6/mt-data-api.cgi/v1/search_entries ?templateBlogId=1 &templateName=DataAPI%e6%a4%9c%e7%b4%a2
templateBlogId/templateNameのパラメータのほかに、Data APIが標準で提供しているlimit/offset/fieldsのパラメータを指定することもできます。
例えば、上記の例で検索する際に、検索結果のうちの最初の10件を飛ばして次の5件を読み込み、タイトルと日付のフィールドだけ出力する場合だと、以下のようなアドレスにアクセスします。
http://www.foo.com/mt6/mt-data-api.cgi/v1/search_entries ?templateBlogId=1 &templateName=DataAPI%e6%a4%9c%e7%b4%a2 &offset=10 &limit=5 &fields=title,date