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

概要

wp_remote_retrieve_body 関数は、WordPressのHTTP APIで取得したレスポンスデータのボディ部を取得するために使用されます。この関数は、外部APIとの通信や、Webhookの受信処理など、HTTPリクエストに関連した機能を実装する際に広く使われます。以下は、wp_remote_retrieve_body関数がよく使用されるシナリオの例です。

  1. APIからのデータ取得
  2. 外部サービスとの連携
  3. JSONデータの解析
  4. HTMLコンテンツの取り込み
  5. RSSフィードの取得
  6. 認証情報を伴うリクエスト
  7. コールバック処理でのデータ取得
  8. デバッグやエラーログの取得

構文

string wp_remote_retrieve_body( array|WP_Error $response );

パラメータ

  • $response (array|WP_Error) : wp_remote_getwp_remote_postなどの関数から返されるレスポンス配列、またはエラーオブジェクト。

戻り値

  • 成功時: レスポンスボディの内容(文字列)
  • 失敗時: 空文字列

関連する関数

対応バージョン

  • WordPress 2.7.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://jsonplaceholder.typicode.com/posts');
if (is_array($response) && !is_wp_error($response)) {
    $body = wp_remote_retrieve_body($response);
    $data = json_decode($body, true);
    print_r($data);
}

このサンプルコードは、外部APIからデータを取得し、レスポンスのボディ部分を取得してJSON形式でデコードし、出力します。

サンプルコード2: チェックとエラーハンドリング

$response = wp_remote_get('https://example.com/api');
if (is_wp_error($response)) {
    // エラーハンドリング
    echo 'エラーが発生しました: ' . $response->get_error_message();
} else {
    $body = wp_remote_retrieve_body($response);
    echo $body;
}

このコードは、APIへのリクエスト結果を検査し、エラーが発生した場合はエラーメッセージを表示し、成功した場合はレスポンスボディを表示します。

サンプルコード3: HTMLコンテンツの取得

$response = wp_remote_get('https://www.example.com/');
$body = wp_remote_retrieve_body($response);
if (!empty($body)) {
    echo $body; // サイトのHTMLを出力
}

このサンプルは、特定のWebページのHTMLコンテンツを取得して出力します。

サンプルコード4: RSSフィードの取得

$response = wp_remote_get('https://example.com/feed');
$body = wp_remote_retrieve_body($response);
$xml = simplexml_load_string($body);
print_r($xml);

このコードは、RSSフィードを取得し、ボディ部分をXMLとして読み込みます。

サンプルコード5: 認証が必要なリクエスト

$response = wp_remote_get('https://api.example.com/secure-data', array(
    'timeout'     => 15,
    'headers'     => array(
        'Authorization' => 'Bearer YOUR_API_TOKEN',
    ),
));
$body = wp_remote_retrieve_body($response);
echo $body;

このサンプルは、認証トークンを使用して保護されたAPIからデータを取得し、レスポンスボディを出力します。

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


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