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. トラブルシューティング: エラー発生時の対応策と監視方法を設定します。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ