WordPressで記事をパスワード保護したときの表示をカスタマイズする方法

2017.12.25 WordPress
WordPressで記事をパスワード保護したときの表示をカスタマイズする方法

WordPressで投稿や固定ページの公開状態をパスワード保護にした場合、記事タイトルの前に「保護中:」というテキストが、そしてパスワード入力欄の上には「このコンテンツはパスワードで保護されています。……」というようなメッセージが挿入されます。

今回は、このパスワード保護したときに挿入されるテキストをカスタマイズする方法のメモです。

記事タイトルの「保護中:」を削除する

まずは、記事タイトルの前に挿入される「保護中:」というテキストを削除する方法から。

テーマのfunctions.phpに下記のコードを追記します。

/* パスワード保護時の表示
---------------------------------------------------------- */
//「保護中:」を削除
add_filter('protected_title_format', 'remove_protected');
function remove_protected($title) {
  return '%s';
}

protected_title_formatというフィルターフックを使います。「%s」は引数の型を指定するもので、この場合は引数を文字列として扱います。

参考ページ:プラグイン API/フィルターフック一覧 – WordPress Codex 日本語版

パスワード保護時のメッセージを変更する

パスワード保護している記事には、パスワード入力欄の上に「このコンテンツはパスワードで保護されています。……」というメッセージが表示されます。

ここを変更したい場合にも、テーマのfunctions.phpを編集します。

//パスワード保護時のメッセージ
function my_password_form() {
  return '<p>ここにパスワード保護時に表示したいメッセージを入力してください。HTMLタグも使えます。</p><form class="post_password" action="' . home_url() . '/wp-login.php?action=postpass" method="post"><div class="login"><input name="post_password" type="password" size="40" /><input type="submit" name="Submit" value="' . esc_attr__("LOG IN") . '" /></div></form>';
}
add_filter('the_password_form', 'my_password_form');

上記コードではpタグでテキストを囲っていますが、divなど自分のケースに合わせて適宜変更してください。HTMLタグが使えますので、リンクを設置したりもできます。

なお、「<form class=”post_password”……」以降はパスワード入力欄を出力するためのソースです。あまり自信がない場合には改変しない方がいいかと思います。

まとめ

会員限定サイトや非公開のポートフォリオサイトなど、パスワード保護しているページで別途案内したい内容もあると思います。

そんなときには今回ご紹介した方法でカスタマイズしてみてください。

柴田竹思

柴田竹思

ベトナム在住Web系フリーランス。有名企業から個人事業まで、いろんなウェブサイトを制作してます。これまで400弱くらい作りました。一年中WordPressばっかりいじってます。

プロフィールはこちら