雑多なブログ

音楽や語学、プログラム関連の話題について書いています

wordpress: HTTPリクエストする。

wordpressでリクエストを送信する場合には下記の関数が使用できます。

  • wp_remote_get
  • wp_remote_post
  • wp_remote_request

説明

wp_remote_*( string $url, array $args = array() )

パラメーターはそれぞれ共通ですが、'method' オプション未指定の場合、wp_remote_getはデフォルトでGETで、wp_remote_postはPOSTとなります。

パラメーター

$url

リクエスト先のURLを指定

$args

省略した場合のデフォルト値は array()

パラメーターのキー 説明
'method' HTTPメソッドを指定 'GET', 'POST', 'HEAD', 'PUT', 'DELETE', 'TRACE', 'OPTIONS', or 'PATCH' が指定できる。
'timeout' リクエストのタイムアウト値を秒で指定。デフォルトは5秒
'redirection' リダイレクトを許容する最大値。デフォルトは5
'httpversion' 使用するHTTPプロトコルのバージョンを指定。1.0、1.1を許容。デフォルトは、1.0
'user-agent' ユーザーエージェントを指定。
デフォルトは 『'WordPress/' . get_bloginfo( 'version' ) . '; ' . get_bloginfo( 'url' ).』
'reject_unsafe_urls' (bool) wp_http_validate_url() 関数で取得できないURLを弾く。デフォルトはfalse
'blocking' trueにすると同期実行となる。falseにすると非同期実行となり、レスポンスの成功可否のみ受け取り、レスポンスは取得できない。デフォルトはtrue
'headers' リクエストヘッダーを指定する。
'cookies' (array) Cookieを配列で指定する。
'body' (string|array) リクエストボディーを指定する。デフォルトはnull
'compress' (bool) リクエスト送信事にリクエストボディーを圧縮するかを指定。デフォルトはfalse
'decompress' (bool) 圧縮されたレスポンスを解凍するかどうかを指定。falseに設定した場合は個別に解凍処理必要。
'sslverify' (bool) SSLのエラーチェックをするかどうか指定。デフォルトはtrue。開発環境などでオレオレ証明書を使用している場面ではfalseに指定する必要があるかも。
'sslcertificates' 証明書の絶対パス
'stream' ファイルへのストリームハンドルを指定。未指定の場合は破棄される。デフォルトはfalse。
'filename' ストリームハンドルの内容を書き込むファイルのパスを指定
'limit_response_size' レスポンスの制限サイズを指定。デフォルトはnull。

Cookieの指定方法については、ドキュメント読んだだけでは不明瞭なので、別途情報をまとめてようと思います(その場で使用していても、あとで使い方忘れちゃいそうですよね)。というか、wordpressの公式ドキュメント若干不親切だなあと思いました。

参考

https://developer.wordpress.org/reference/classes/WP_Http/request/