ワードプレスのwp_remote_retrieve_response_code関数の使用方法・解説

概要

wp_remote_retrieve_response_code 関数は、HTTPリクエストの応答からHTTPステータスコードを取得するための関数です。この関数は、主にAPIからのレスポンスをチェックしたり、外部サーバーとの通信結果を評価する際に使用されます。以下のシナリオでよく使われます:

  1. APIからデータを取得した後、そのレスポンスのステータスを確認する。
  2. 外部リソースHTTPリクエストの成功・失敗を評価する。
  3. サーバーの応答コードに基づいて処理を分岐する。
  4. エラーハンドリングの一環として、特定の応答コードに基づいてアクションを実行する。
  5. コンテンツの更新時に、サーバーからの応答を確認する。
  6. リダイレクト処理を実装する際に、302や301などのリダイレクトレスポンスを評価する。
  7. REST APIのクライアントとして動作する際に、レスポンスコードをチェックする。
  8. 自製プラグインやテーマでのHTTPリクエスト結果のデバッグに使用する。

構文

wp_remote_retrieve_response_code( $response );

パラメータ

  • $response (array) : wp_remote_get() または wp_remote_post() などで取得されたレスポンスの配列。

戻り値

  • (int) : HTTPステータスコード。応答が正常でない場合は、null が返る。

関連する関数

使用可能なバージョン

  • WordPress バージョン 2.8.0 以降で使用可能。

コアファイルのパス

  • wp-includes/http.php

この関数のアクションでの使用可能性

アクション 使用例
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

サンプルコード

サンプルコード 1: APIからのステータスコードを取得する

$response = wp_remote_get('https://api.example.com/data');
$status_code = wp_remote_retrieve_response_code($response);
if ($status_code === 200) {
    // レスポンスが成功した場合の処理
} else {
    // エラーハンドリング
}

このコードは、指定されたAPIエンドポイントからデータを取得し、HTTPステータスコードを確認して成功したかどうかを判断します。

サンプルコード 2: エラーハンドリング

$response = wp_remote_post('https://api.example.com/submit', array('body' => $data));
$status_code = wp_remote_retrieve_response_code($response);
if ($status_code != 200) {
    // エラーが発生した場合のログ記録
    error_log('Error fetching data: ' . $status_code);
}

このコードは、POSTリクエストを送信し、HTTPステータスコードが200でない場合にエラーログを記録します。

サンプルコード 3: リダイレクトの処理

$response = wp_remote_get('https://example.com/redirect');
$status_code = wp_remote_retrieve_response_code($response);
if ($status_code === 301 || $status_code === 302) {
    // リダイレクト先のURLを取得する処理
    $redirect_url = wp_remote_retrieve_header($response, 'location');
}

このコードは、リダイレクトが発生した場合の応答コードを取得し、リダイレクト先のURLを処理します。

サンプルコード 4: APIのレスポンスコードを基に処理を分岐

$response = wp_remote_get('https://api.example.com/check');
$status_code = wp_remote_retrieve_response_code($response);
switch ($status_code) {
    case 200:
        // 正常時の処理
        break;
    case 404:
        // リソースが見つからない場合の処理
        break;
    default:
        // その他のエラーハンドリング
        break;
}

このサンプルは、HTTPレスポンスに基づいて異なる処理を実行します。

サンプルコード 5: デバッグ用にHTTPステータスを表示

$response = wp_remote_get('https://api.example.com/data');
$status_code = wp_remote_retrieve_response_code($response);
var_dump($status_code); // ステータスコードを表示

このコードは、HTTPのレスポンスコードをデバッグ用に画面に出力します。

この関数について質問する


上の計算式の答えを入力してください