WordPressAPIを使ってみる

2023.07.25 09:00
2023.07.24 10:59
WordPressAPIを使ってみる

WordPressでAPIアクセスができるみたいなので、やってみます。
これができると、例えばMicroCMSのようにフロントエンドとバックエンドを分けることができるっぽいですね。

前段として、まず普通にWordPressをインストールして普通に使えるところまで用意しておきます。APIはデフォルトでアクセスできるみたいなので、インストールした時点で準備は完了ですね。

1. 投稿記事

1-1. 投稿記事を取得

実際にアクセスしてみます。
APIへのアクセスはアドレスの後ろに「wp-json/wp/〜」とつけるようですね。
単純に投稿記事を取得するならこんな感じのようです。

https://XXXX/wp-json/wp/v2/posts

1-2. パラメーターを追加して取得属性を指定する

パラメーターをつけることで記事のとり方を色々指定できるみたいですね。1ページでの取得件数を指定する場合は上記のアドレスの後ろにこんな感じで追記するようです。

?per_page=1

ページを指定する場合はこんな感じ。

?page=1

並び替えはこんな感じ。「asc」は昇順、「desc」は降順

?order=asc
?order=desc

どのデータで並び替えるかも指定できるみたいです。たとえば以下なら「id」で並べ替えするか「slug」で並べ替えるか。

?orderby=id
?orderby=slug

取得するデータを絞る事もできるみたいです。以下だと「auther」と「id」と「excerpt」と「title」と「link」だけを取得することになります。

?_fields=author,id,excerpt,title,link

2. カテゴリ

カテゴリの一覧を取得するにはこんな感じ。

https://XXXX/wp-json/wp/v2/categories

3. タグ

タグを指定して記事を取得する

https://XXXX/wp-json/wp/v2/tags

カスタム投稿タイプへのアクセス

カスタム投稿タイプをAPIでアクセスするには「slug」を指定するみたいです。こんな感じですね。

https://サイトURL/wp-json/wp/v2/{カスタム投稿タイプのslug}

オリジナルAPI

独自のAPIを作ることもできるみたいです。その際はfunction.phpに追記する必要があるみたいですね。ここでは「org_api」とアクセスしたら「aaa」と返すAPIを作成してみます。

add_action('rest_api_init', function() {
    register_rest_route( 'wp/v2', '/org_api', array(
        'methods' => 'GET',
        'callback' => 'org_api',
    ));
});

function org_api( ) {
  return 'aaaa';
}

こんな感じでアクセスします。

https://XXX.com/wp-json/wp/v2/org_api/

無事に「aaaa」が表示されました。
他にもいろいろな情報をAPI経由で拾えるみたいですね。

今回は以上です!