[WordPress]特定のカテゴリのみにベーシック認証をかける簡単な方法
2018/03/30
特定のカテゴリのみにベーシック認証をかけるという案件があり、
functions.phpに、記述する方法など試したところ、
やり方が悪いのか上手く動かず、.htaccessを使うことにしました。
下記は下層ページcategory1(スラッグ名)にベーシック認証をかける例です。
まず「category1」ディレクトリをWordPressのインストールされたディレクトリ直下に作成し、その中に.htaccessと.htpasswdを入れます。
.htaccessは下記のように設定します。
AuthType Basic
AuthName "Input your ID and Password."
AuthUserFile /home/アカウント/ドメイン/public_html/category1/.htpasswd
require valid-user
2行目はポップアップ時のテキスト、3行目に.htpasswdまでのパスを記述
上記はエックスサーバーでの記述例です。
▼安くて使いやすXサーバはこちら^^
つづいて、.htpasswdファイルを作成し、IDとパスワードを用意します。
下記のサイトで暗号化したパスワードを作成できます。
http://www.luft.co.jp/cgi/htpasswd.php
最後に「category1」ディレクトリ内にindex.phpを作成し、下記のように記述します。
define('WP_USE_THEMES', true);
require( dirname( __FILE__ ) . '/../wp-blog-header.php' );
WordPressがインストールされているトップディレクトリ内にあるindex.phpを
コピーしてきて、編集されても大丈夫です。
上記ソースはパスの箇所が「/wp-blog-header.php」から「/../wp-blog-header.php」
に変更しています。
以上で完了です。
「category1」ページにベーシック認証がかけられました。
パーマリンクを設定して、記事ページもcategory1の下層に入る形にすれば、
下層ページも自動的にベーシック認証がかかります。