【WordPress】特定のカテゴリーの記事にBasic認証をかける方法

【WordPress】特定のカテゴリーの記事にBasic認証をかける方法

こんにちは、ゆうや(@yuyaphotograph)です!

この記事では、

  • WordPressで特定のカテゴリーに属する記事にBasic認証(アクセス制限)をかける方法が知りたい

という方のお悩みを解決します!

特定のカテゴリーの記事にBasic認証をかける

結論。

以下の手順で簡単に実現できます!

  1. Basic認証をかける関数を子テーマのfunctions.phpに追加
  2. 子テーマのheader.phpの先頭にコードを追加
  3. FTPソフトでアップロードして変更を反映

レンタルサーバーの管理画面からポチポチ設定できたら最高なんですが、そういう方法が特に見当たらなかったので今回こうして備忘録を残しておきます!

ちなみにエックスサーバーでは、管理画面から簡単にアクセス制限できちゃいますのでこちらの記事も目を通してみてください〜

【エックスサーバー】サーバーパネルからアクセス制限をかける方法とは?コードいじる必要なし!【エックスサーバー】サーバーパネルからアクセス制限をかける方法とは?コードいじる必要なし!

とまあ、そろそろ本題にいきましょうか!

functions.phpに関数を追加

まず、ご自身のWordPressテーマの子テーマのfunctions.phpに下記コードをコピペしましょう!

functions.php
//Basic認証をかける関数
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の先頭に下記コードをぺぺっと貼り付けましょう!

*子テーマ内にheader.phpがない方は、親テーマからまるっと内容をコピーしてきて設置していただくようお願いいたします

header.php
<?php
if(!is_home() && !is_archive()): if(in_category('カテゴリーID')) : $userArray = array("ID" => "PW");
basic_auth($userArray);
endif;
endif;
?>

こちらのコードは、「特定のカテゴリーに属する記事ページにBasic認証をかける」ものであって、「カテゴリーアーカイブページ」にはアクセス制限は適用されませんのでご注意くださいまし。

もしカテゴリー一覧ページにもBasic認証をかけたい場合は、&& !is_archive()を削除してあげればOKです!

$userArray = array("ID" => "PW")のIDとPWには任意で、認証を解く時のデータを設定してあげてください。

 

今回、これらのページを参考にして実装しました!!

参考 カテゴリーページや固定ページ等でBasic認証を利用するKOTORI

まとめ

以上、WordPressで特定のカテゴリーに属する記事にBasic認証をサクッとかける方法を紹介しました。

このトピックで悩んでいる方の助けになれれば幸いです〜!!

ぜひご自身のサイトでも試してみてくださいまし〜

 

「WordPressに関するTipsをもっと知りたい!」

という方は以下の記事も目を通してみてください〜

Contact Form 7のラジオボタンをカスタマイズする方法Contact Form 7のラジオボタンをカスタマイズする方法 WordPressのパスワード保護ページで記事の途中までパスワードなしでも読めるようにするカスタマイズ方法【WordPress】パスワード保護ページで記事の途中までパスワードなしでも読めるようにカスタマイズする方法