あくまで自分用の覚え書きなので文章とか適当です...

WP REST APIを利用すると、PHP以外の言語でWordPressのデータが扱えるようになり、とても便利ですよね。(ちなみにREST APIの”REST“は”REpresentational State Transfer”の略。画像のような休憩のRESTじゃないです…)

大体のモダンな言語ではHTTPの送信とJSONデータが扱えるのではないかと思います。(知らんけど)

予め用意されている基本のJSONデータ

投稿データを取得

最新の投稿10件を取得されます。

http://example.com/wp-json/wp/v2/posts

ちなみに当サイトのデータ

https://illustswitch.com/wp-json/wp/v2/posts

データが見辛いわっ!…という場合

Chromeを使用されている場合は”JSON Viewer“というアドオンがおススメです。綺麗に整形して表示してくれます。
がっつり開発に使用するなら”Postman“というアプリもいいかもしれません。

投稿データを3件取得する

件数を指定するには”per_page”クエリパラメーターを使用します。

http://example.com/wp-json/wp/v2/posts?per_page=3

投稿データをIDで指定する

下記は”ID=123″の投稿を取得する例

http://example.com/wp-json/wp/v2/posts/123

カテゴリーIDで投稿データを絞り込み

下記はカテゴリーID=5の投稿を取得する例

http://example.com/wp-json/wp/v2/posts?categories=5

固定ページのデータを取得

http://example.com/wp-json/wp/v2/pages

キーワード検索する

これを利用すればJavaScript等で検索アプリ作れます。

http://example.com/wp-json/wp/v2/posts?search=検索したい文字列

ちなみに当サイトを”wordpress”で検索した結果↓ ↓ ↓

https://illustswitch.com/wp-json/wp/v2/posts?search=wordpress

デフォルトのJSONデータにカスタム要素を追加する

APIデフォルトデータには含まれない要素を追加するにはfunctions.phpに記述を加えます。

APIデフォルトデータには含まれない、”投稿の作成者名 “を追加する例

functions.php

function my_custom_restapi() {
    //第1引数:post_type  第2引数:プロパティ名 第3引数:値
    register_rest_field('post', 'authorName', array(
        'get_callback' => function() {
            return get_the_author();
        }
    ));
}
add_action('rest_api_init', 'my_custom_restapi');

カスタム投稿のデータを取得する

カスタム投稿タイプのデータは予め用意されていないのですが、register_post_type関数で投稿タイプを登録する際に、‘show_in_rest’ => trueを加えることで利用できるようになります。(これだけ!簡単)

functions.php


function my_custom_post() { 
  register_post_type('mypost', array(
    'show_in_rest' => true, //←これを加える
    ...
  ));
}
add_action('init', 'my_custom_post');

JSONデータ(エンドポイント)

http://example.com/wp-json/wp/v2/mypost


参考

REST API HANDBOOK

フルスクラッチでエンドポイントを作成する方法は下記投稿で。

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です