WEB制作

【WordPressカスタマイズ】特定のページにBASIC認証を実装する

みなさんこんにちは!

このページだけ、一旦間違った情報があるから見れないようにしたい!などで非表示にしたいことはありませんか?

今回はWordPressでできたサイトにおいて、特定ページだけ見れないようにする(Basic認証を設定する)方法について説明します。

今回の内容についてはYouTubeでも公開しておりますのでよろしければご覧下さい。

設定手順

Basic認証の設定は以下の5つのステップで行います:

  1. functions.phpにコードを追加
  2. header.phpにコードを追加
  3. 認証を設定するページを定義
  4. ユーザー名とパスワードを設定
  5. 動作確認

1. functions.phpへの追加

functions.phpに以下のコードを追記します。

function basic_auth($auth_list, $realm="Restricted Area", $failed_text="認証に失敗しました") {
  if (isset($_SERVER['PHP_AUTH_USER']) && isset($auth_list[$_SERVER['PHP_AUTH_USER']])) {
    if ($auth_list[$_SERVER['PHP_AUTH_USER']] == $_SERVER['PHP_AUTH_PW']) {
      return $_SERVER['PHP_AUTH_USER'];
    }
  }
  header('WWW-Authenticate: Basic realm="'.$realm.'"');
  header('HTTP/1.0 401 Unauthorized');
  header('Content-type: text/html; charset='.mb_internal_encoding());
  die($failed_text);
}

2. header.phpへの追加

header.phpの先頭に以下のコードを追記します。

<?php
if (!is_home()):
  if (is_page('1')):
    $userArray = array(
      "admin" => "12345"
    );
    basic_auth($userArray);
  endif;
endif;
?>

3. 認証ページの定義

header.phpに追加したコードで、Basic認証を適用するページを指定します。例えば、ページIDが1の固定ページに設定する場合は is_page('1') とします.

4. ユーザー名とパスワードの設定

$userArray 内でユーザー名とパスワードを定義します:

$userArray = array(
  "ユーザー名" => "パスワード",
  "ユーザー名2" => "パスワード2"
);

5. 動作確認

設定したページにアクセスし、認証画面が表示されることを確認します

まとめ

うまく適応できましたでしょうか?

今回は、【WordPressカスタマイズ】特定のページにBASIC認証を実装する方法について解説しました。

BASIC認証で実施する方法もありますが、設定ファイルは1つにまとめた方が管理的によいので私個人としてはfunctions.phpに記述派です。