• モデレーター IKEDA Yuriko

    (@lilyfan)

    ブラウザー・端末によって、パスワード間違いのとき再度認証画面が出ないことがありそうです。このため、コードを以下のように直して頂けると幸いです。

    <?php
    global $wpja_site_pass;
    $wpja_site_pass = array(
      'user_1' => 'pass_1',
      'user_2' => 'pass_2',
    );
    
    function wpja_force_basic_auth() {
      if (! defined('WP_USE_THEMES')) {
        return;
      }
      global $wpja_site_pass;
      if (isset($_SERVER['PHP_AUTH_USER']) && array_key_exists($_SERVER['PHP_AUTH_USER'], $wpja_site_pass) && strcmp($wpja_site_pass[$_SERVER['PHP_AUTH_USER']], $_SERVER['PHP_AUTH_PW']) === 0) {
        return;
    } else {
        header('WWW-Authenticate: Basic realm="Please Enter Site Password"');
        header('HTTP/1.0 401 Unauthorized');
        if (! isset($_SERVER['PHP_AUTH_USER'])) {
            echo "Authorization Required";
        } else {
            echo "Bad Password";
        }
        exit;
      }
    }
    add_action('init', 'wpja_force_basic_auth');
    ?>