特定のページにBasic認証をかける(WordPress編)
WordPressでBasic認証をかける方法は、通常のHTMLとは異なります。
プラグインやサーバの設定で認証をかけることも可能ですが、ここでは手動でかける方法をご紹介します。
1.基本の設定① function.phpの設定
まず、function.phpに以下のコードを追加します。
とくに変更いりません。そのままコピペしてください。
(function.phpはWordpressの基本の設定なので、崩れるとWordpress自体が起動しなくなってしまいます。
バックアップを取っておくなどして、くれぐれもご注意ください)
—————————————————————- */
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);
}
2.基本の設定② header.phpの設定
次にheader.phpの設定をします。
header.phpはWordpressの共通のヘッダー部分の設定するファイルです。
①headerにコードを追加する
header.phpの一番上に以下のコードを追加します。(一番上以外の場所だとbasic認証がかかりません)
こちらも、ひとまずそのままコピペしてください。
if(!is_home()):
if(is_page(‘1’)):
$userArray = array(
“admin” => “12345”
);
basic_auth($userArray);
endif;
endif;
?>
②ページの設定
3行目(赤字部分)
この部分がページIDを設定する部分になります。
’1’の部分にWordpressのページIDを入れます。
ページIDがわからない場合は、該当ページのbodyタグの中に書かれています。
投稿ページの場合は、postid-[ID番号]
固定ページの場合は、page-id-[ID番号]
IDナンバーと書かれている部分がページIDです。
③IDとパスワードの設定
4~6行目(緑字部分)
“admin” => “12345”
);
この部分が、IDとパスワードの設定部分です。
上記では”admin“がID、”12345“がパスワードになります。
” “の内側にお好きなIDとパスワードを入力してください。
以上が基本の設置方法です。
3.複数のID・PWを設定する場合
複数のIDとパスワードを設置したい場合は、
4~6行目の設定を増やします。
“admin” => “12345“,
“ID1” => “67890“,
“ID2” => “abcde”
);
このように行を増やしていきます。
途中の行の区切り目には”,”(カンマ)を入れるのを忘れずに。(最後の行はカンマを入れないでください)
4.複数のページ、特定の条件に設置する場合
複数のページに設置する場合は、
3行目のif(is_page(‘1’)):の部分を変更します。
①複数投稿ページ
投稿ページの場合は、3行目を
に書き換えます。
複数ページの場合は
となります。
②複数固定ページ
固定ページの場合は、最初の例と同じ表記で構いません。
複数ページの場合は、
となります。
③特定のカテゴリ
特定のカテゴリの場合は、3行目を
に書き換えます。
複数カテゴリの場合は、
となります。
④特定のタグ
特定のタグの場合は、3行目を
に書き換えます。
複数カテゴリの場合は、
となります。
⑤特定のカスタム投稿タイプ
特定のカスタム投稿タイプの場合は、3行目を
に書き換えます。
“type”にカスタム投稿タイプ名を入れます。
“特定のページにBasic認証をかける(WordPress編)” に対して1件のコメントがあります。