WordPress REST APIとは
WordPress REST APIは、WordPressサイトのデータにプログラムでアクセスするための強力なインターフェースです。JSON形式でデータをやり取りできるため、モバイルアプリ開発やヘッドレスCMS構築、サイト間のデータ連携など、さまざまな用途に活用できます。
REST APIの有効化手順
1. 基本設定の確認
WordPress 4.7以降のバージョンでは、REST APIがデフォルトで有効になっています。まず、以下のURLにアクセスしてAPIが利用可能か確認しましょう。
https://あなたのサイトURL/wp-json/
2. パーマリンク設定の更新
APIが正常に動作しない場合、パーマリンク設定を更新する必要があります。
- WordPressダッシュボードにログイン
- 「設定」→「パーマリンク」を選択
- 「変更を保存」をクリック(設定を変更せずに)
3. プラグインによる制御
特定の条件下でAPIを無効化/有効化するには、以下のコードをテーマのfunctions.phpファイルに追加します。
// REST APIを有効化
add_filter('rest_enabled', '__return_true');
add_filter('rest_jsonp_enabled', '__return_true');
// 認証なしのアクセスを制限(オプション)
add_filter('rest_authentication_errors', function($result) {
if (!empty($result)) {
return $result;
}
if (!is_user_logged_in()) {
return new WP_Error('rest_not_logged_in', 'APIへのアクセスには認証が必要です', array('status' => 401));
}
return $result;
});
セキュリティ対策
REST APIを有効化する際は、セキュリティ対策が不可欠です。
1. アクセス制限方法
// 特定の名前空間のみ許可
add_filter('rest_endpoints', function($endpoints) {
$allowed_namespaces = array('wp/v2', 'myplugin/v1');
foreach ($endpoints as $route => $endpoint) {
$namespace = explode('/', $route)[0];
if (!in_array($namespace, $allowed_namespaces)) {
unset($endpoints[$route]);
}
}
return $endpoints;
});
2. 認証方法の実装
- 基本認証: Basic Authenticationプラグインを利用
- OAuth: OAuth1.0aプラグインをインストール
- JWT認証: JWT Authentication for WP REST APIプラグインを使用
活用事例
有効化したREST APIを活用する代表的な例:
- カスタムフロントエンドアプリケーションとの連携
- モバイルアプリのバックエンドとして利用
- 複数WordPressサイト間のデータ同期
- サードパーティサービスとの統合
トラブルシューティング
APIが正常に動作しない場合のチェックリスト:
- WordPressのバージョンが4.7以上か確認
- パーマリンク設定を再保存
- セキュリティプラグインがAPIをブロックしていないか確認
- .htaccessファイルに問題がないか確認
- サーバーのmod_rewriteが有効か確認
まとめ
WordPress REST APIを適切に有効化することで、WordPressの可能性を大きく広げることができます。セキュリティ対策を講じた上で、この強力な機能を活用してください。開発の際は公式ドキュメントを参照し、常に最新のベストプラクティスに従うことが重要です。