WordPressの見せたくない投稿記事はパスワード保護出来ますが、そのパスワード保護画面をカスタマイズする方法をご紹介します。
ディスプレイ広告
編集するファイル「functions.php」の場所
WordPressのテーマフォルダ
/wp-content/themes/テーマフォルダ/functions.php
ファイルを編集します。
「保護中」文字を非表示
パスワード保護した投稿記事タイトルに「保護中」という文字が表示されるのでそれを非表示にします。
functions.phpファイルの最下部に以下の内容を記述します。
add_filter( 'mwform_validation_mw-wp-form-133', 'my_validation_rule', 10, 3 ); add_filter('protected_title_format', 'remove_protected'); function remove_protected($title) { return '%s'; }
以下の様に「保護中」の文字が非表示になります。
パスワード保護画面のテキストとフォームをカスタマイズ
次に、パスワード保護画面(投稿記事タイトル下)のテキストとフォームをカスタマイズします。
functions.phpファイルの最下部に以下の内容を記述します。
function my_password_form() { return '<p style="padding:40px 0 0 0;">非公開の情報です。お問い合わせください。</p><p style="padding:35px 0 20px 0;">パスワードを入力して「送信」ボタンをクリックして下さい。<br>(1日経つと再度パスワードを入力する必要があります)<p> <form class="post_password" action="' . home_url() . '/wp-login.php?action=postpass" method="post"> <input name="post_password" type="password" size="24" style="border:solid 1px #cccccc; padding:6px; background-color:#ffffff;" /> <input type="submit" name="Submit" value="' . esc_attr__("送信") . '" style="border:solid 1px #cccccc; padding:6px; margin:0 0 0 6px;" /> </form>'; } add_filter('the_password_form', 'my_password_form');
以下の様にパスワード保護画面がカスタマイズ出来ます。
パスワード入力後の閲覧期間(cookie)変更
パスワード保護画面でパスワード入力後の閲覧期間はデフォルトで10日間になってます。それを1日に変更してみます。
functions.phpファイルの最下部に以下の内容を記述します。
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() + DAY_IN_SECONDS, COOKIEPATH ); wp_safe_redirect( wp_get_referer() ); exit(); } add_action( 'login_form_postpass', 'custom_postpass_time' );
上記より「DAY_IN_SECONDS」で閲覧期間を1日間に設定しました。この箇所で閲覧期間(cookie)を変更します。
1時間にしたい場合は「HOUR_IN_SECONDS」と記述します。
※流用される場合は自己責任でお願いします。