WordPressでのカスタムテンプレートにおけるパスワード制限の有効化

目次

パスワード制限機能

WordPressの投稿・固定ページの公開状態のステータスとして「公開」「非公開」「パスワード保護」の3種類があります。
パスワード保護は任意のパスワードを設定することで、ページの閲覧にパスワードの入力が必要となります。
会員限定の記事など閲覧者を制限したいときに利用可能な機能です。

パスワード保護が有効にならない

固定ページにおいてパスワード保護の設定を行ったにもかかわらず、ページがそのまま公開されてしまうパターンが存在します。

そもそもパスワード保護が設定されている場合に、WordPressが閲覧を制限するのは記事・固定ページの編集領域の中にあるコンテンツになります。
そのため、固定ページにて自作のテンプレート(page-○○○.php)等を適用してページを構築している場合パスワード保護が有効にならずそのまま公開されてしまいます。

パスワード保護を有効化する

使用しているテーマ(既存のテーマをカスタマイズする場合は子テーマ)内のパスワード保護を有効化したいページにて使用しているテンプレート(page-○○○.php)を編集します。

<?php if( !post_password_required( $post->ID ) ) :  ?>
 
//パスワードによって閲覧を制限したい部分
 
<?php else:  ?>
 
<?php echo get_the_password_form(); ?>
 
<?php endif;  ?>

条件分岐で if( !post_password_required( $post->ID ) )else で表示内容を切り替えています。

post_password_required関数により該当のテンプレートが使用されている固定ページがパスワード保護を設定しているかどうかを判定します。
「!」を付けて否定しているので、「パスワード保護を設定していない」「パスワードを正しく入力した」場合に表示する内容を記述します。

else はそれ以外の状態なので「パスワード保護が有効な状態」で get_the_password_form関数でパスワード入力画面を表示します。

以上でパスワード保護が有効となりパスワード入力画面が表示されるようになります。

この記事を書いた人

目次
閉じる