studio benkei スタジオベンケイ

[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の下層に入る形にすれば、
下層ページも自動的にベーシック認証がかかります。

About