Open3
WordPress REST API 備忘録
最新記事一覧を取得する
https://example.com/wp-json/wp/v2/posts
ID指定で記事情報を取得する
https://example.com/wp-json/wp/v2/posts/${id}
Slug指定で記事情報を取得する
https://example.com/wp-json/wp/v2/posts?slug=${slug}
記事のサムネイルを取得する
記事情報で取得できる featured_media
が記事に指定されているサムネイルの情報。
author: 1,
featured_media: 1,
comment_status: "closed",
ping_status: "open",
sticky: false,
template: "",
format: "standard",
meta: [ ],
これをもとにメディア情報のAPIでアクセスする。
https://example.com/wp-json/wp-json/wp/v2/media/${id}
認証ありで未公開記事の情報を取得する
事前準備
WordPressのコンソールから、[ユーザー] -> [プロフィール] -> [アプリケーションパスワード] で予めパスワードを設定しておく。
取得
非公開投稿の下書き・予約投稿の場合は、Basic認証でUserID/Passwordを定義した状態で、ID指定で記事情報を取得する。
Slug指定で取得した場合は空のjsonが返される。
https://example.com/wp-json/wp/v2/posts/${id}
REST APIのレスポンスにカスタムフィールドの値を追加する
Wordpressのコンソールのテーマ編集などで、functions.php
に rest_api_init
へのアクションフックを指定し、register_rest_field関数を実行するように定義する。
register_rest_field関数は、第一引数に対象のオブジェクト、第二引数にレスポンスに追加する属性名、第三引数に登録の定義を指定する。get_callback
には連想配列を返す関数を指定する。
// REST API用関数
add_action( 'rest_api_init', 'api_add_fields' );
function api_add_fields() {
register_rest_field( 'post',
'attribute',
array(
'get_callback' => 'get_custom_params',
'update_callback' => null,
'schema' => null,
)
);
}
function get_custom_params () {
return array(
'custom_params1' => XXXXX,
'custom_params2' => YYYYY,
);
}
参考: