このブログArrownもWordPressで作っていますし、仕事でもなんだかんだWordPressに関わることが少なくないのですが、個人的にあまり利用する機会がないのが「パスワード保護」機能です。
WordPressのパスワード保護機能を使うと、一部の人(パスワードを知っている人)にだけ記事の中身を見せることができるようになります。
このパスワード保護機能、デフォルトだとthe_content()の部分のみを非表示にするような設定になっているんですね。。。
この設定を変更し、 the_content()の部分以外もパスワードを入力しないと表示されないようにしたいときの方法を自分自身への備忘録としてブログにしたいと思います!
目次
WordPressでパスワード保護する範囲を任意に設定したいときのコード事例
まずは結論から!コード事例を掲載したいと思います!
<?php if( !post_password_required( $post->ID ) ) : ?>
<!--パスワードを入れないとみられないようにしたい範囲をここに記述-->
<?php endif; ?>
基本的にはこれでOKです!
post_password_required()
関数は、WordPressにある関数の1つで、パスワードが一致しない場合はtrue・一致する場合はfalseを返すという仕様になっています。
つまり、 !post_password_required( $post->ID )
とすることで、if文の中には「パスワードが一致したとき」に表示したいページの内容を書いてあげればOKということになります!
パスワード保護しているページでパスワードが間違ったときに再度パスワードフォームが表示されるようにしたい
もし万が一パスワードを間違った場合に再度パスワード入力フォームを表示したい場合は、以下のようにすればOKです!
<?php if( !post_password_required( $post->ID ) ) : ?>
<!--パスワードを入れないとみられないようにしたい範囲をここに記述-->
<?php else:?>
<?php echo get_the_password_form(); ?>
<?php endif; ?>
get_the_password_form()
関数は、文字通りパスワードフォームを表示させるための関数です。先ほど記述したif文の条件に当てはまらなかったとき、つまりパスワードを間違えたりしたときには、else内に get_the_password_form()
関数 を書いてあげればOK!
色々な場合を想定すると、初めから上記コードをフルで書いておいた方がいいかもしれないですね!
まとめ
ということで、今回はWordPressでパスワード保護する範囲を任意に設定したいときの対処法について記載しました!