wordpressのRest APIでカテゴリ名を取得する方法をメモ。
個別の投稿の情報はwp-json/wp/v2/postsから取得ができるのですが、カテゴリに関してはカテゴリIDしか取得できません。
そこで、公式ページのレスポンスを修正するを参考に、カテゴリ名を取得する関数をfunctions.phpに追加します。
functions.php
//カテゴリ名を取得する関数を登録
add_action( 'rest_api_init', 'register_category_name' );
function register_category_name() {
//register_rest_field関数を用いget_category_name関数からカテゴリ名を取得し、追加する
register_rest_field( 'post',
'category_name',
array(
'get_callback' => 'get_category_name'
)
);
}
//$objectは現在の投稿の詳細データが入る
function get_category_name( $object ) {
$category = get_the_category($object[ 'id' ]);
$cat_name = $category[0]->cat_name;
return $cat_name;
}
その後、http://[yourdomain]/wp-json/wp/v2/postにアクセスするとcategory_nameの値が取得できるようになります。