wp_remote_retrieve_cookies()


WordPress関数wp_remote_retrieve_cookies()は、HTTPリクエストのレスポンスからクッキーを取得するために使用されます。この関数は特にwp_remote_get()やwp_remote_post()と組み合わせて使用されます。

構文

wp_remote_retrieve_cookies( array $response );

引数の説明:

  • $response (array) — HTTPレスポンスを含む配列。通常はwp_remote_get()やwp_remote_post()の返り値として使用されます。

使用例

例 1: クッキーを取得して表示する

この例では、リモートリクエストのレスポンスからクッキーを取得して表示します。

<?php
$response = wp_remote_get( 'https://example.com' );
$cookies = wp_remote_retrieve_cookies( $response );
print_r( $cookies );
?>

例 2: クッキー名と値をループで出力する

クッキー名とその値をループで出力します。

<?php
$response = wp_remote_get( 'https://example.com' );
$cookies = wp_remote_retrieve_cookies( $response );
foreach ( $cookies as $cookie ) {
    echo $cookie->name . ': ' . $cookie->value . '<br>';
}
?>

例 3: 特定のクッキーを取得する

特定のクッキー名を検索して値を取得します。

<?php
$response = wp_remote_get( 'https://example.com' );
$cookies = wp_remote_retrieve_cookies( $response );
foreach ( $cookies as $cookie ) {
    if ( $cookie->name === 'session_id' ) {
        echo 'Session ID: ' . $cookie->value;
    }
}
?>

例 4: クッキーを条件付きで使用する

特定のクッキーが存在する場合に処理を実行します。

<?php
$response = wp_remote_get( 'https://example.com' );
$cookies = wp_remote_retrieve_cookies( $response );
foreach ( $cookies as $cookie ) {
    if ( $cookie->name === 'logged_in' && $cookie->value === 'true' ) {
        echo 'ユーザーはログイン中です。';
    }
}
?>

例 5: クッキーを設定してレスポンスに追加する

取得したクッキーをリクエストの一部として再利用します。

<?php
$response = wp_remote_get( 'https://example.com' );
$cookies = wp_remote_retrieve_cookies( $response );
$cookie_header = [];
foreach ( $cookies as $cookie ) {
    $cookie_header[] = $cookie->name . '=' . $cookie->value;
}
$args = [
    'headers' => [
        'Cookie' => implode( '; ', $cookie_header ),
    ],
];
$new_response = wp_remote_get( 'https://another-example.com', $args );
?>

注意事項

  • wp_remote_retrieve_cookies()はリクエストが成功した場合にのみ正しいクッキー情報を返します。is_wp_error()を使用してレスポンスを検証してください。
  • レスポンスの構造が期待される形式であることを確認してください。

関連機能: