テンプレートを使用するとパスワード保護が無効になる
恥ずかしいことですが、最近になって初めて知りました。
固定ページでテンプレートを使用するとパスワード保護を設定していても無効になるんですね。
WordPressの投稿や固定ページには、上記の画像のようにパスワードを入力しないと観覧できないようにする「パスワード保護」という機能があります。
上記の様に投稿や固定ページにアクセスしても、パスワードを入力しないとページを観覧できません。
便利な機能なのですが、固定ページの場合はテンプレートを設定していると、このパスワード保護が正常にどうさしなくなるのです。
固定ページのテンプレートというのは、上記画像の赤枠部分で個別にテンプレートを設定する機能です。
これが表示されていない場合は、テンプレートが設定できない状態ですので今回のお話は関係ないことになります。
固定ページでテンプレートを設定している場合でも、パスワード保護を有効にする方法はないのか?
今回はこの疑問を解決する方法をご紹介しています。
テンプレートを使用した場合でもパスワード保護を有効にする方法
固定ページでテンプレートを設定している場合でも、パスワード保護を有効にするためには、設定しているテンプレートファイル自体をカスタマイズする必要があります。
パスワード保護を行いたい固定ページで設定しているテンプレートファイルを開いてください。
テーマに設置している場合、管理画面「テーマの編集」の右側にあるファイル名から開くことができます。
テンプレートファイルを開いたら、本文部分のコードを探しましょう。
この部分がどの様に記述されているかは、テンプレートファイルごとに異なります。
個別に確認してください。
本文部分のコードが確認できたら、そのコードをメモ帳か何かにコピペして、テンプレートファイルからコードを削除します。削除できたら、コードがあった部分に、以下のコードをコピペしてください。
<?php if( !post_password_required( $post->ID ) ) : ?>
ここに本文部分のコードを記述します。
<php else: ?>
<php echo get_the_password_form(); ?>
<php endif; ?>
最後に【ここに本文部分のコードを記述します。】の部分に、先ほどメモ帳にコピペした本文部分のコードをコピペして保存します。
これで、このテンプレートを設定した固定ページでは、パスワード保護が有効となりました。
何をしたのか簡単に説明しますと、パスワード保護がされているかどうかを判断して条件分岐を行いました。
パスワード保護がされていない、パスワードが一致した場合、【ここに本文部分のコードを記述します。】部分に記述した内容が表示されます。
パスワード保護をしている場合、パスワードを入力したがパスワードが誤っていた場合は、
<php echo get_the_password_form(); ?>
上記が表示されます。
これは、パスワード入力エリアを表示させるコードです。
パスワード保護が設定されている場合は、まずパスワード入力エリアが表示され、正しいパスワードを入力すれば【ここに本文部分のコードを記述します。】に記述した内容が表示されるわけです。
言葉で説明すると難しいので、とにかく設定してページを確認してみてください。
パスワード保護が有効になっていることが確認できるかと思います。
テンプレートファイルを編集する時は、予めバックアップをとっておきましょう。
コードの記述を誤るとページが正常に表示されなくなる可能性があるからです。
パスワード保護したいページが複数あり、それぞれのページで個別のテンプレートを設定している場合、全てのテンプレートファイルに今回のカスタマイズを施す必要があります。
以上が、テンプレートを使用した場合でもパスワード保護を有効にする方法でした。
まとめ
wordpressの固定ページでテンプレートを使用するとパスワード保護が無効になる!
最近知ったので、その解決方法と合わせてまとめてみました。
あまり必要性のないカスタマイズかとも思いましたが、備忘録もかねて書き残しておきます。
コメントを残す