WordPress覚書 その4「カスタム投稿(ACF値追加あり)をREST APIで受け取る」

vue

2017年に入り、Wordpressの今後の展開が発表となった。
今後はREST API含めたJSへの移行(移植)が加速していくと思われるので、
REST APIを利用した値の取得は必ず必要となってくると思う。
今まではベータ扱いだったWP REST APIもver.4.7から標準搭載となったので、
積極的に活用していきたいところ。

実装要件

カスタム投稿(ACF値追加あり)をREST APIで受け取る

環境構築

  1. WordPress ver.4.7以上をインストール or プラグイン WP REST API をインストール
  2. プラグイン AdvancedCustomField をインストール
  3. プラグイン ACF to REST API をインストール ※インスト―ルしないとACFの値が反映されない

カスタム投稿の登録

カスタム投稿をfunction.phpに定義する際に、数行付け加える

register_post_type( 'works',
    array(
      'labels' => array(
        'name' => __( '作品紹介' ),
        'singular_name' => __( '作品紹介' )
      ),
      'public' => true,
      'supports' => array( 'title', 'author', 'thumbnail', 'excerpt', 'custom-fields' ,'comments' ),
      'menu_position' => 110,
      'capability_type' => page,
      'hierarchical' => true,
      'has_archive' => true,
      'show_in_rest' => true, //追加
      'rest_base' => 'works'  //追加

    )
  );

show_in_rest

trueにすることで本カスタム投稿をREST APIで取得することができる。(デフォルトはfalseとなっている)

rest_base

REST APIのURLに含める文字列の指定。

アクセスしてみる

上記の例の場合、http://www.sample.com/wp-json/wp/v2/works で取得することができる。
ACFという項目でばっちり値が入っていた。