[WordPress] wp_remote_get() で BASIC 認証ページからデータを取得する

<?php
$user = 'username';
$password = 'password';
$url = 'http://example.com/&#39;;
$args = array(
'headers' => array(
'Authorization' => 'Basic '.base64_encode("$user:$password")
)
);
$result = wp_remote_get($url, $args);

headers に ‘Authorization: Basic ‘ を渡せば良いです。
ユーザー名、パスワードは : (コロン) で区切って base64_encode() してやればおっけ。

[WordPress] WP ユーザー認証を BASIC 認証に利用する

<?php
function basic_auth(){
nocache_headers();
if ( is_user_logged_in() )
return;
// WordPress のユーザー認証で BASIC 認証ユーザー/パスワードをチェック
$user = isset($_SERVER["PHP_AUTH_USER"]) ? $_SERVER["PHP_AUTH_USER"] : '';
$pwd = isset($_SERVER["PHP_AUTH_PW"]) ? $_SERVER["PHP_AUTH_PW"] : '';
if ( !is_wp_error(wp_authenticate($user, $pwd)) ) {
return;
}
// BASIC 認証が必要
header('WWW-Authenticate: Basic realm="Please Enter Your Password"');
header('HTTP/1.0 401 Unauthorized');
echo 'Authorization Required';
die();
}
add_action('template_redirect','basic_auth');

view raw
wp-basic-auth.php
hosted with ❤ by GitHub

ただし、Nginx のリバースプロキシキャッシュとか WP Super Cache が有効になってる場合は、正常に動作しないので注意

追記:
最初に nocache_headers(); を追加したので、Nginx のリバースプロキシキャッシュにキャッシングされなくなりました。
WP Super Cache については知らん