🔌 WordPress REST API完全ガイド
WordPress REST APIは、WordPressのデータを外部アプリケーションから操作できる強力な機能です。モバイルアプリ、SPAフレームワーク(React、Vue.js)、外部サービスとの連携など、様々な用途で活用できます。開発者向けの高度な機能ですが、基礎から丁寧に解説します。
REST APIとは?
REST API(REpresentational State Transfer Application Programming Interface)は、HTTPリクエストを使ってデータの取得・作成・更新・削除を行うための仕組みです。
WordPress REST APIでできること
- 記事の取得・作成・更新・削除:外部からWordPressの記事を操作
- ユーザー情報の取得・管理:ユーザーデータへのアクセス
- カテゴリー・タグの管理:分類情報の操作
- メディアのアップロード:画像などのファイルアップロード
- コメントの管理:コメントの取得・承認・削除
- カスタム投稿タイプの操作:独自の投稿タイプへのアクセス
REST APIの活用例
1. ヘッドレスCMS
WordPressをバックエンド(データ管理)として使い、フロントエンドは別の技術で構築します。
- React、Vue.js、Next.jsなどのJavaScriptフレームワークで高速なUI構築
- モバイルアプリ(iOS、Android)へのコンテンツ配信
- 複数のフロントエンドに同じデータを配信
2. 外部サービスとの連携
- Zapier、IFTTTとの自動化
- CRMシステムとの顧客データ連携
- 在庫管理システムとの同期
3. モバイルアプリ
WordPressの記事を表示するiOS/Androidアプリを開発できます。
4. マイクロサービス
WordPress以外のシステムからWordPressのデータを利用できます。
REST APIの基本的な使い方
エンドポイント
REST APIにアクセスするURLをエンドポイントと呼びます。
基本的なエンドポイント
https://yoursite.com/wp-json/wp/v2/
主要なエンドポイント
- 投稿一覧:
/wp/v2/posts - 個別投稿:
/wp/v2/posts/{id} - 固定ページ:
/wp/v2/pages - カテゴリー:
/wp/v2/categories - タグ:
/wp/v2/tags - ユーザー:
/wp/v2/users - メディア:
/wp/v2/media - コメント:
/wp/v2/comments
記事を取得する(GET)
ブラウザで確認
最も簡単な方法は、ブラウザで以下のURLにアクセスすることです。
https://yoursite.com/wp-json/wp/v2/posts
最新の投稿一覧がJSON形式で表示されます。
JavaScriptで取得(fetch API)
fetch('https://yoursite.com/wp-json/wp/v2/posts')
.then(response => response.json())
.then(data => {
console.log(data);
// 記事のタイトルを表示
data.forEach(post => {
console.log(post.title.rendered);
});
})
.catch(error => console.error('Error:', error));
パラメータで絞り込み
- 件数指定:
?per_page=10 - ページ指定:
?page=2 - カテゴリー:
?categories=5 - 検索:
?search=キーワード - 並び順:
?orderby=date&order=desc
/wp/v2/posts?per_page=5&orderby=date&order=desc最新5件の投稿を取得
記事を作成する(POST)
記事を作成するには、認証が必要です。
認証方法
1. Application Passwords(推奨)
WordPress 5.6以降で利用可能な、最も安全な認証方法です。
Application Passwordsの作成
- WordPress管理画面で「ユーザー」→「プロフィール」
- 「Application Passwords」セクションまでスクロール
- 「New Application Password Name」に名前を入力(例:API Access)
- 「Add New Application Password」をクリック
- 表示されたパスワードをコピー(スペース含む)
2. JWT(JSON Web Token)
プラグインを使った高度な認証方法です。
記事作成のサンプルコード(JavaScript)
const username = 'your_username';
const password = 'xxxx xxxx xxxx xxxx xxxx xxxx'; // Application Password
const credentials = btoa(username + ':' + password);
fetch('https://yoursite.com/wp-json/wp/v2/posts', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Basic ' + credentials
},
body: JSON.stringify({
title: 'APIから投稿したテスト記事',
content: 'REST APIを使って記事を作成しました。',
status: 'publish' // publish, draft, privateなど
})
})
.then(response => response.json())
.then(data => console.log('記事作成成功:', data))
.catch(error => console.error('エラー:', error));
記事を更新する(PUT/PATCH)
特定の記事を更新
fetch('https://yoursite.com/wp-json/wp/v2/posts/123', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Basic ' + credentials
},
body: JSON.stringify({
title: '更新されたタイトル',
content: '更新された本文'
})
})
.then(response => response.json())
.then(data => console.log('更新成功:', data));
記事を削除する(DELETE)
fetch('https://yoursite.com/wp-json/wp/v2/posts/123', {
method: 'DELETE',
headers: {
'Authorization': 'Basic ' + credentials
}
})
.then(response => response.json())
.then(data => console.log('削除成功:', data));
セキュリティとアクセス制限
1. 読み取り専用に制限
デフォルトでは、ログインしていないユーザーでも投稿一覧を取得できます。これを制限するには、プラグインやカスタムコードを使います。
2. Application Passwordsの管理
- 不要になったパスワードは削除する
- 定期的に再生成する
- 外部サービスでのみ使用し、公開しない
3. CORSの設定
別ドメインからのアクセスを許可する場合、CORS設定が必要です。
カスタムエンドポイントの作成
独自のエンドポイントを作成することもできます(上級者向け)。
サンプル:カスタムエンドポイント
// functions.phpに追加
add_action('rest_api_init', function() {
register_rest_route('myplugin/v1', '/hello', array(
'methods' => 'GET',
'callback' => 'my_custom_endpoint',
));
});
function my_custom_endpoint() {
return array(
'message' => 'Hello from custom endpoint!',
'timestamp' => current_time('mysql')
);
}
アクセス:https://yoursite.com/wp-json/myplugin/v1/hello
便利なプラグイン
1. JWT Authentication for WP REST API
JWT認証を有効にするプラグインです。
2. WP REST API Controller
REST APIのアクセス制御を簡単に設定できます。
3. ACF to REST API
Advanced Custom Fields のデータをREST APIで取得できるようにします。
4. WP REST Cache
REST APIのレスポンスをキャッシュして高速化します。
REST APIのテストツール
1. Postman
APIのテストに最適なツールです。GUIで簡単にリクエストを送信できます。
2. Insomnia
Postmanと同様のAPIテストツールです。
3. cURL(コマンドライン)
コマンドラインからAPIをテストできます。
curl https://yoursite.com/wp-json/wp/v2/posts
よくあるエラーと解決法
1. 404 Not Found
- 原因:パーマリンク設定が正しくない
- 解決:「設定」→「パーマリンク」で「変更を保存」をクリック
2. 401 Unauthorized
- 原因:認証情報が間違っている
- 解決:Application Passwordsを再生成
3. 403 Forbidden
- 原因:権限がない
- 解決:適切な権限を持つユーザーで認証
4. CORS Error
- 原因:別ドメインからのアクセスがブロックされている
- 解決:CORS対応プラグインを導入、またはヘッダーを設定
まとめ
WordPress REST APIは、WordPressを単なるブログツールから、強力なコンテンツ管理プラットフォームへと進化させる機能です。
REST API利用のチェックリスト
- ✓ REST APIの基本的な仕組みを理解
- ✓ ブラウザでエンドポイントにアクセスして動作確認
- ✓ Application Passwordsで安全に認証
- ✓ セキュリティ設定を確認
- ✓ 必要に応じてアクセス制限を設定
- ✓ テストツールで十分にテスト