投稿にパスワード

投稿にパスワード
Image by jessica45 from Pixabay

2021.10.24(更新日:2021.10.24)

簡単なパスワードを付けて欲しいと依頼があった。
「ならパスワード設定をすれば楽勝じゃん」と思いきや
予想と違った結果だったので備忘録。

この記事は1年以上経過しています。内容的に古い場合があります。

パスワード保護

編集ページの右上にあるこの部分でパスワード設定をすれば、パスワード入力しないと表示されないページが出来上がる。

今回は通常のループではなく、別の投稿の一覧を表示させるべくWP-queryでコンテンツを形成する予定だった。

パスワード設定はそのページのthe_contentを見ている

通常、投稿欄を表示する際「the_content()」を使うが、今回の仕様は別の投稿を持ってきている。
なのでその投稿の「the_content()」を使っていないと言うことになり、当然パスワード付きのページにはならない。

post_password_requiredで解決

と言う訳で以下で解決。

/* テンプレート */
<?php if( !post_password_required( $post->ID ) ) : ?>
// パスワードが通った時の処理
<?php else: ?>
// パスワード未入力の場合、パスワードのフォームを表示
<?php echo get_the_password_form(); ?>
<?php endif; ?>

おまけ:タイトルの保護中を消す

/* functionsにでも追加 */
function my_protected_title($title) {
	return '%s';
	//もし「パスワードを入れてくれ!」と文言編集するなら
	//return 'パスワードを入れてくれ!%s';
} 
add_filter('protected_title_format', 'my_protected_title');

まとめ

マニュアルをよく見ろ!ってことですね。反省