WordPressのパスワード保護ページとは?
まずは、WordPressのパスワード保護ページに関して解説しておきます。
WordPressのパスワード保護ページとは、「投稿を公開する時に【公開状態】を【パスワード保護】にした場合、その投稿にアクセスすると表示されるパスワードの入力を求めるページ」のことです。
デフォルトですと、以下の様な内容が表示されます。
赤枠の部分が自動的に出力される部分です。
WordPressのパスワード保護ページをカスタマイズしよう!
それでは、パスワード保護ページをカスタマイズしていきましょう。
今回は、3つのカスタマイズ方法をご紹介します。
個別に見ていきましょう。
その1:タイトルから「保護中:」を消す。
パスワード保護ページのタイトルには【保護中:】と自動的に表示されます。
上記画像の赤枠部分ですね。
この部分を削除するカスタマイズです。
functions.phpに以下のコードを記述すればOKです。
add_filter('protected_title_format', 'remove_protected');
function remove_protected($title) {
return '%s';
}
上記のコードが設置できたら、パスワード保護ページを確認してみましょう。
【保護中:】という部分が消えています。
タイトルから「保護中:」を消すカスタマイズは以上です。
その2:本文のテキストを変更する。
パスワード保護ページの本文は、「このコンテンツはパスワードで保護されています。閲覧するには以下にパスワードを入力してください。」と自動的に表示されます。
この部分を任意のテキストに変更するカスタマイズです。
functions.phpに以下のコードを記述すればOKです。
function password_form_kai() {
return
'<p>ここに任意のテキストを記述しましょう。</p>
<form class="post_password" action="' . home_url() . '/wp-login.php?action=postpass" method="post">
<input name="post_password" type="password" size="24" />
<input type="submit" name="Submit" value="' . esc_attr__("パスワード送信") . '" />
</form>';
}
add_filter('the_password_form', 'password_form_kai');
【ここに任意のテキストを記述しましょう。】の部分に、任意のテキストを記述してください。
【このコンテンツはパスワードで保護されています。閲覧するには以下にパスワードを入力してください。】の部分が、【ここに任意のテキストを記述しましょう。】に記述したテキストと指し変わります。
【パスワード送信】部分を変更すると、送信ボタンのテキストが変わります。
本文のテキストを変更するカスタマイズは以上です。
その3:Cookieの期限を変更する。
最後は見た目のカスタマイズではなく、内部的なカスタマイズを一つご紹介します。
WordPressのパスワード保護ページは、一度パスワードを入力して認証を行うと、Cookieが保存(10日間)されるので、その期間は認証なしでページが観覧できてしまいます。
10日間という期間は長すぎると感じる場合もあるかもしれません。
そこで、Cookieが保存される期間を変更するカスタマイズ方法をご紹介します。
以下のコードをfunctions.phpにコピペしてください。
function password_form_cookie() {
require_once ABSPATH . 'wp-includes/class-phpass.php';
$hasher = new PasswordHash( 8, true );
setcookie( 'wp-postpass_' . COOKIEHASH, $hasher->HashPassword( wp_unslash( $_POST['post_password'] ) ), time() + MINUTE_IN_SECONDS, COOKIEPATH );
wp_safe_redirect( wp_get_referer() );
exit();
}
add_action( 'login_form_postpass', 'password_form_cookie' );
上記コードの【MINUTE_IN_SECONDS】部分がCookieの期間を指定している部分です。
上記の設定ですとCookieの期間は【1分間】となります。
この部分を任意の期間になるように変更してください。
基本的な期間を以下にご紹介します。
- MINUTE_IN_SECONDS(1分間)
- 30 * MINUTE_IN_SECONDS(30分間)
- HOUR_IN_SECONDS(1時間)
- 12 * HOUR_IN_SECONDS(12時間)
- DAY_IN_SECONDS(1日)
- 3 * DAY_IN_SECONDS(3日)
Cookieの期限を変更するカスタマイズは以上です。
まとめ
WordPressのパスワード保護ページをカスタマイズする方法をご紹介しました。
今回は基本的なカスタマイズを3種類ご紹介しました。
この他にも、ページ毎にテキストを変更するカスタマイズなどがあります。
他のカスタマイズは次の機会にご紹介しますね。
コメントを残す