概要
wp_remote_retrieve_response_code
関数は、HTTPリクエストの応答からHTTPステータスコードを取得するための関数です。この関数は、主にAPIからのレスポンスをチェックしたり、外部サーバーとの通信結果を評価する際に使用されます。以下のシナリオでよく使われます:
- APIからデータを取得した後、そのレスポンスのステータスを確認する。
- 外部リソースHTTPリクエストの成功・失敗を評価する。
- サーバーの応答コードに基づいて処理を分岐する。
- エラーハンドリングの一環として、特定の応答コードに基づいてアクションを実行する。
- コンテンツの更新時に、サーバーからの応答を確認する。
- リダイレクト処理を実装する際に、302や301などのリダイレクトレスポンスを評価する。
- REST APIのクライアントとして動作する際に、レスポンスコードをチェックする。
- 自製プラグインやテーマでの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のレスポンスコードをデバッグ用に画面に出力します。