2026年7月8日
2026年7月8日
WordPressのRemote PostでPOSTリクエストをする方法
はじめに
この記事では、WordPressプラグイン開発者が外部APIからデータを取得する際に「wp_remote_post」関数を使用する方法について説明します。POSTリクエストを行うことで、ユーザー情報の更新やフォームからの送信などの処理が可能になります。
症状・背景
このテーマが必要になる主な場面:
- APIからデータを取得する必要がある場合
- フォームからの入力を外部システムに送信する必要がある場合
- WordPressプラグイン開発において、POSTリクエストの実装が必要な場合
手順・設定方法
ステップ1: wp_remote_post関数を使用してPOSTリクエストを送る基本的な操作
# 外部APIに接続するためのURLとパラメータを設定します。
$api_url = 'https://example.com/api/data';
$params = array(
'param1' => 'value1',
'param2' => 'value2'
);
# wp_remote_post関数を使用してPOSTリクエストを送ります。
$response = wp_remote_post($api_url, array(
'body' => $params,
));
# 通信に問題がなければ、レスポンスの内容を表示します。
if (is_wp_error($response)) {
// リクエストに失敗した場合
echo "リクエストに失敗しました: " . $response->get_error_message();
} else {
// レスポンスデータを配列として取得します。
$body = wp_remote_retrieve_body($response);
echo 'レスポンス内容:' . $body;
}
ステップ2: POSTリクエストの応答ヘッダーとボディを確認する主要なオプション/設定
# レスポンスヘッダーやステータスコードを取得します。
$response_code = wp_remote_retrieve_response_code($response);
$response_message = wp_remote_retrieve_response_message($response);
echo '応答ステータス: ' . $response_code . ', ' . $response_message;
# レスポンスボディを確認します。
$body = wp_remote_retrieve_body($response);
print_r(json_decode($body));
ステップ3: 非同期処理やバッチ処理など、応用的な組み合わせ
# キューに保存して非同期で実行する例(WP-Cronを使用)
function my_remote_post() {
$api_url = 'https://example.com/api/data';
wp_remote_post($api_url, array(
'body' => array('action' => 'my_action'),
));
}
add_action( 'wp_cron', 'my_remote_post' );
# 非同期処理の実行
if (!wp_next_scheduled('my_async_task')) {
wp_schedule_event(time(), 'daily', 'my_async_task');
}
function my_async_task() {
$api_url = 'https://example.com/api/data';
wp_remote_post($api_url, array(
'body' => array('action' => 'async_action'),
));
}
add_action( 'my_async_task', 'my_async_task' );
ステップ4: リクエストの実践的なトラブルシューティングと監視
# エラーログを出力して問題を特定します。
if (is_wp_error($response)) {
error_log('リモートPOSTエラー:' . $response->get_error_message());
}
注意事項
- 安全なホストからのリクエストのみ許可する
- APIキーなどの敏感情報は適切に保護する
- POSTリクエストの頻度を考慮し、必要に応じて非同期処理を行う
- レスポンスデータがJSON形式である場合、json_decodeを使用してパースする
まとめ
1. 基本的なPOSTリクエスト: wp_remote_post関数を使用して基本的なPOSTリクエストを送信します。
2. 応答の確認: レスポンスヘッダーとボディを適切に取得し、処理を行います。
3. 非同期処理: WP-Cronや他のキュー処理システムを使用して非同期でPOSTリクエストを送信します。
4. トラブルシューティング: エラー発生時の対応策と監視方法を設定します。
関連記事: