パスワード保護って
記事や固定ページの「公開」部分を「パスワード保護」にすると、アクセス制限がかけられます。
以下必要なところをfunctions.phpに追加する
保護中の文言を削除
add_filter('protected_title_format', 'remove_protected');
function remove_protected($title) {
return '%s';
}
テキストを変更する方法
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');
Cookieの期限を変える
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時間に設定)の部分を、10分であれば「600」など、秒数を指定。
または1日にする場合には「DAY_IN_SECONDS」と設定。
カスタムフィールドもパスワード保護する
通常パスワード保護は「post_content()」、「comments_template()」で出力された情報のみに適用されるので、カスタムフィールドは適用されず表示されてしまうので、カスタムフィールドもパスワード保護する。
<?php if( !post_password_required( $post->ID ) ) : //ここにカスタムフィールドなどパスワード保護したいものを追加する endif;?>



コメント