「WordPressで学ぶPHP(4)通信編」を発売しました。
本書は、「WordPressで学ぶPHP(1)変数・制御構造編」「WordPressで学ぶPHP(2)データ構造編」「WordPressで学ぶPHP(3)関数編」の続編にあたり、Webブラウザとサーバー(PHP)との通信と、PHPから他のサーバーに通信することについて解説します。
Data API 2.0で記事を検索する
Movable Type 6.1では、Data APIが大幅に拡張され、バージョン 2.0になりました。
新しい機能の1つに、記事の検索があります。
複数ブログ(またはウェブサイト)にまたがる記事を得ることができます。
この使い方を紹介します。
1.エンドポイントとパラメータ
検索の機能は、Movable Type標準の検索(mt-search.cgi)を流用して作られています。
検索のエンドポイントは以下のようになります。
http://your-host/path-to-mt/mt-data-api.cgi/v2/search
以下の各パラメータを組み合わせて、検索条件を指定します。
searchとIncludeBlogsのパラメータは必須で、その他はオプションです。
パラメータ | 内容 |
---|---|
search | 検索する語句を指定します。 タイトル/本文/続き/キーワードのどれかのフィールドに、その語句が含まれる記事が検索されます。 |
IncludeBlogs | 検索対象のブログ(またはウェブサイト)のIDを指定します。 複数のブログ(ウェブサイト)を対象にする場合は、それらのIDをコンマで区切って並べます。 |
archive_type | カテゴリ/日付/ユーザーのいずれかの条件をつけて検索する場合に、それに対応するアーカイブのタイプを指定します。 MTArchiveListタグ等のarchive_typeモディファイアと同じ値を指定します。 |
category | 検索対象のカテゴリのIDを指定します。 複数のカテゴリのIDを指定することはできません。 |
author | 検索対象のユーザーのIDを指定します。 複数のユーザーのIDを指定することはできません。 |
year | 検索対象の年を指定します。 複数の年を指定することはできません。 |
month | 検索対象の月を指定します。 月が1桁の場合は、「01」のように10の位にゼロを付けます。 複数の月を指定することはできません。 |
day | 検索対象の日を指定します。 日が1桁の場合は、「01」のように10の位にゼロを付けます。 複数の日を指定することはできません。 |
limit | 出力する件数の上限を指定します。 |
page | 検索結果の先頭を飛ばして続きを読み込みたい場合に指定します。 例えば、limit=10&page=2とすると、検索結果の2ページ目(=先頭の10件を飛ばした次の10件)が読み込まれます。 |
例えば、以下の条件で記事を検索したいとします。
- ブログ(またはウェブサイト)のIDが1番
- 「MT」という語句を含む
- 2015年に書かれた
- カテゴリのIDが10番
この場合、以下のようなアドレスにアクセスします。
http://your-host/mt-data-api.cgi/v2/search?IncludeBlogs=1&search=MT&archive_type=Category-Yearly&year=2015&category=10
2.JavaScript SDKでアクセスする
JavaScript SDKを使ってアクセスする場合、「search」というメソッドを実行します。
上で挙げた例をJavaScriptで行う場合、以下のようなプログラムになります。
var params = { 'IncludeBlogs': 1, 'search': 'MT' 'arcyve_type': 'Category-Yearly', 'year': 2015, 'category': 10 }; api.search(params, function(response) { 検索結果に対する処理 });