概要
wp_remote_get
関数は、WordPressにおいてGETメソッドを送信するために使用される関数です。この関数は、外部のWebサイトやAPIと通信する際に役立ちます。特に、以下のような場面でよく使われます:
- 外部APIからデータを取得する
- Webサービスと連携する
- リモートサーバーからのデータを取得して処理する
- 環境設定を外部から取得する
- 外部リソースの監視やチェックを行う
- プラグインやテーマでの動的コンテンツの取り込み
- キャッシュを取り入れた情報取得
- サーバー間の通信やデータ取得
構文
$response = wp_remote_get( $url, $args );
パラメータ
- $url (string) – リモートリソースのURL(必須)
- $args (array) – オプションの引数(任意)
引数には、HTTPヘッダー、タイムアウト、ユーザーエージェントなどの情報を設定できます。
戻り値
wp_remote_get
は、リクエストの結果を含む配列またはWP_Errorオブジェクトを返します。成功した場合、レスポンスボディやHTTPステータスなどの情報が含まれています。
関連する関数
- wp_remote_post
- wp_remote_request
- wp_remote_retrieve_body
- wp_remote_retrieve_response_code
- wp_remote_retrieve_headers
使用可能なバージョン
wp_remote_get
はWordPress 2.7で導入され、現在まで利用可能です。特定のバージョンで非推奨または削除されたわけではありません。
コアファイルのパス
この関数は、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 |
サンプルコード
以下は、wp_remote_get
を使用したサンプルコードです。
サンプル1:外部APIからデータを取得する
$response = wp_remote_get( 'https://api.example.com/data' );
if ( is_array( $response ) && ! is_wp_error( $response ) ) {
$body = wp_remote_retrieve_body( $response );
// 取得したデータを使用する
}
このコードは、外部のAPIからデータを取得し、その内容を処理します。
サンプル2:カスタムユーザーエージェントを指定する
$response = wp_remote_get( 'https://api.example.com/data', array(
'headers' => array(
'User-Agent' => 'My-Custom-Agent'
)
) );
if ( is_array( $response ) && ! is_wp_error( $response ) ) {
$data = wp_remote_retrieve_body( $response );
}
このコードは、カスタムのユーザーエージェントを指定してGETリクエストを送信します。
サンプル3:タイムアウトを設定する
$response = wp_remote_get( 'https://api.example.com/data', array(
'timeout' => 5 // タイムアウトを5秒に設定
) );
if ( is_array( $response ) && ! is_wp_error( $response ) ) {
$data = wp_remote_retrieve_body( $response );
}
このコードは、GETリクエストに対してタイムアウトを5秒に設定しています。
サンプル4:HTTPステータスコードを確認する
$response = wp_remote_get( 'https://api.example.com/data' );
if ( is_array( $response ) && ! is_wp_error( $response ) ) {
$code = wp_remote_retrieve_response_code( $response );
if ( $code === 200 ) {
$data = wp_remote_retrieve_body( $response );
}
}
このコードは、HTTPステータスコードを確認し、成功した場合のみデータを処理します。
サンプル5:エラーハンドリングを行う
$response = wp_remote_get( 'https://api.example.com/data' );
if ( is_wp_error( $response ) ) {
$error_message = $response->get_error_message();
// エラーメッセージを処理
} else {
$data = wp_remote_retrieve_body( $response );
}
このコードは、エラーハンドリングを行い、リクエストが失敗した場合の処理を示しています。
これらのサンプルは、実際の環境でAPIからのデータ取得の方法を示しています。