WordPressでは、固定ページでテンプレートを使うとパスワード保護が効かなくなることがあります。
なぜパスワード保護が効かなくなるかといえば、パスワード保護を読み込むソースが、the_contentsが読み込んでいるファイル「wp-includes/post-template.php 」の中にあるからです。
つまり、the_contentsを使用しないと、パスワード保護は読み込まれません。
なので、もしパスワード保護を有効にしたい場合は、テンプレートファイル側でthe_contentsを使用して、固定ページに記載された記事を読み込むようにすることで解決します。
具体的には下記のようになります。
【対応前(パスワード保護が効かない)】
page-◯◯.php(テンプレートファイル)のソース
<div id="wrapper">
<div class="contents">
あああああああああああ
</div>
</div>
※全てをテンプレート側に書いているため、the_contentsの記述がない。
【対応後(パスワード保護が効く)】
page-◯◯.php(テンプレートファイル)のソース
<div id="wrapper">
<?php while ( have_posts() ) : the_post(); ?>
<?php the_content(); ?>
<?php endwhile; // end of the loop. ?>
</div>
固定ページの記事中に下記を記載
<div class="contents">
あああああああああああ
</div>
※テンプレート側に全てのソースを書くのではなく、一部でも固定ページの内容を読み込むように指定する。
以上です。
もしテンプレートファイルを使用してパスワード保護が効かなくなったときには、ぜひお試しください。