投稿ページや固定ページで、パスワード保護をかけた場合に表示されるページをオリジナルに変更することが出来そうなので備忘用にメモしました。
1.「保護中:」を消去
functions.phpに以下を追記
add_filter('protected_title_format', 'remove_protected');
function remove_protected($title) {
return '%s';
}
2.テキスト変更
functions.phpに以下を追記
function my_password_form() {
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', 'my_password_form');
3.Cookieの有効期限を変える
一度パスワードを入力すると、デフォルトでは10日間パスワードの入力が不要となっているので、1時間に変更。
function custom_postpass_time() {
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() + HOUR_IN_SECONDS, COOKIEPATH );
wp_safe_redirect( wp_get_referer() );
exit();
}
add_action( 'login_form_postpass', 'custom_postpass_time' );
HOUR_IN_SECONDS の部分を変更することで時間を設定できる。
1分間… MINUTE_IN_SECONDS
30分間… 30 * MINUTE_IN_SECONDS
1日… DAY_IN_SECONDS など
4.特定のページのみ変更したいとき
投稿ページ編
function my_password_form() {
if(is_single('ページID')){
return
'<p>このページを閲覧するにはコードを入力してください</p>
<form style="margin-bottom: 200px;" 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>';
}
else{
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', 'my_password_form');
固定ページの時は
if(is_single('ページID')) の部分を if(is_page('ページID')) に変更
以下のページを参考にさせていただきました。
https://tetrachroma.co.jp/blog/131111_postpassword_custom/
https://design-plus1.com/tcd-w/2016/08/password.html
https://pokomichi.com/wordpress-password