0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

WordpressのPassword保護ページをオリジナルに変更

Last updated at Posted at 2019-11-07
1 / 2

投稿ページや固定ページで、パスワード保護をかけた場合に表示されるページをオリジナルに変更することが出来そうなので備忘用にメモしました。

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

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?