WordPress

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

WordPressでベーシック認証をかけたい場合、サーバー側で設定する、プラグインを使う、.htaccessで設定するといった方法がありますが、今回はWordPressサイトで特定のページにのみベーシック認証をかけ、そのログイン情報をWordPressの管理画面上で設定できるようにする方法を紹介します。

特定ページにベーシック認証をかける

まず、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に以下のコードを記述します。

<?php
 if (is_page(‘member-page’)) {
  $userArray = array(‘admin’ => ‘password’);
  basic_auth($userArray);
 }
?>

※全角スペースが含まれているため、コピペで使用する際はご注意ください。

「member-page」というスラッグの固定ページの場合にベーシック認証がかかり、「admin」と「password」を入力すればそのページを閲覧できます。

管理画面上でログイン情報を変更できるようにする

ベーシック認証のログイン情報をWordPressの管理画面上で設定できるようにするにはカスタムフィールドを使い、カスタムフィールドに入力された値がログイン情報に設定されるようにします。

カスタムフィールドの詳しい説明は省略しますが、「Advanced custom fields」や「Smart Custom Field」などのプラグインを使えば簡単に実装できます。

ベーシック認証をかける固定ページにカスタムフィールドで2つの入力欄を設け、header.phpに記述した先ほどのコードを以下のように変更します。

<?php
 $basic_id = post_custom(‘basic_id’);
 $basic_password = post_custom(‘basic_password’);
 if (is_page(‘photogallery’)) {
  $userArray = array($basic_id => $basic_password);
  basic_auth($userArray);
 }
?>

※全角スペースが含まれているため、コピペで使用する際はご注意ください。

これで「$basic_id」と「$basic_password」をベーシック認証のログイン情報に設定することができたので、管理画面上で変更したら動的に変更されます。

関連記事
カスタムフィールドを作れるプラグイン「Advanced Custom Fields」【WordPress】
「Smart Custom Fields」でカスタムフィールドを作成する方法【WordPress】

WordPressを始めるならエックスサーバーがおすすめ

WordPressでブログやアフィリエイトを始めたい、良いレンタルサーバーに乗り換えたいという方にはエックスサーバーがおすすめです。

その理由は以下の通り。

  • 国内シェアNo.1のレンタルサーバー
  • サポートの品質が高い
  • 表示速度・処理速度が速い

WordPressが学べるおすすめのスクール

WordPress関連の本もありますし、ネット上にはたくさんの情報がありますが、短期間でWordPressも含めたWeb制作のスキルを身につけたい方にはプログラミングスクールがおすすめです。

TechAcademy

  • WordPressのサイト制作の流れが理解できる
  • WordPressでオリジナルサイトが作れるようになる
  • プラグインやカスタムフィールドを学べる
  • オンラインで完結
  • 講師・メンターが現役エンジニア

関連記事
WordPressが学べるおすすめのプログラミングスクール

Leave a Comment