WordPressで特定のページにベーシック認証をかける方法【簡単】

本記事では、WordPressの「functions.php」,「header.php」ファイルを使って特定のページにベーシック認証をかける簡単な方法を紹介していきます。

Basic認証は、ID(ユーザー名)パスワードを設定し、サイトの閲覧を制限するものです。

目次

functions.phpにコードを追加

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

function basic_auth($auth_list,$realm="Restricted Area",$failed_text="認証に失敗しました"){
if (isset($_SERVER['PHP_AUTH_USER']) and 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);
}

header.phpにコードを追加

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

<?php
if(!is_home()):
if(is_page('ベーシック認証するページのID')):
$userArray = array(
"ユーザー名" => "パスワード"
);
basic_auth($userArray);
endif;
endif;
?>

変更する箇所は3か所

例えば、投稿記事のID426にユーザー名がadmin,パスワードが1234のベーシック認証を設定する場合

ベーシック認証するページのID ⇒ 426
ユーザー名 ⇒ admin
パスワード ⇒ 1234

と変更すれば設定完了です。

以上でベーシック認証を簡単に設定することができました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次