みなさんこんにちは!
このページだけ、一旦間違った情報があるから見れないようにしたい!などで非表示にしたいことはありませんか?
今回はWordPressでできたサイトにおいて、特定ページだけ見れないようにする(Basic認証を設定する)方法について説明します。
今回の内容についてはYouTubeでも公開しておりますのでよろしければご覧下さい。
設定手順
Basic認証の設定は以下の5つのステップで行います:
- functions.phpにコードを追加
- header.phpにコードを追加
- 認証を設定するページを定義
- ユーザー名とパスワードを設定
- 動作確認
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に記述派です。