Ubuntu+Apache2環境でWordPressのREST APIを使う

WordPressのREST APIを試そうとして、すんなりと行かなかったので覚え書き。公開されている投稿をJSONで取得するまで。新規投稿などは認証の仕組みが必要なので、また別途。
(2016-12-08追記) WordPress 4.7になりREST API 2.0がコアに取り込まれたためREST APIを使用する場合は、以下のようなプラグインは必要なくなった。逆に、WordPress 4.7にバージョンアップするとREST APIが無条件で有効になるので注意。通常はさほど気にする事ではないのかもしれないけど、バージョンアップする場合は様子見が必要かも。
WordPressの設定
プラグインのインストール
"REST API"で検索してインストールと有効化を行う。ここではVer2を使用した。まだベータ版なので本運用するには注意。 wordpress_restapi1
パーマリンクの設定
自分の環境で試した限りでは、パーマリンクは"基本"と"カスタム構造"以外ならどれでも動作した。 wordpress_restapi2
Apache2の設定
Apacheは直接ダウンロードしてインストールした場合と、apt-getでインストールした場合では設定ファイルなどに違いがあるかもしれない。ここではapt-getでインストールした。
mod_rewriteを有効にする
$ sudo a2enmod rewrite
Apacheの設定ファイルに追加する
<VirtualHost *:80>のブロック内に記載する。ちなみにDocumentRootはデフォルトのままで変更していない。
$ sudo nano /etc/apache2/sites-enabled/000-default.conf<VirtualHost *:80>
  .....
  ..... ← ここに追加
  .....
</VirtualHost>
こんな感じになるように以下の記述を追加する。
<VirtualHost *:80>
  .....
  <Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
  </Directory>
  .....
</VirtualHost>
Apache2を再起動する
$ sudo service apache2 restart
エンドポイントが動作するか試してみる
http://<WordPressのURL>/wp-json/wp/v2/postsにアクセスしてみて投稿内容が取得できればOK。
この記事で書かれている製品やソフトについて
  • Ubuntu 16.04.1 LTS
  • WordPress 4.6.1
  • Apache 2.4.18