パスワード保護でカスタムフィールドなども隠す – post_password_required

<?php if (!post_password_required()): ?>
  <?php the_field('紹介文'); ?>
<?php endif; ?>

WordPressには「パスワード保護」という機能があり、パスワードを知っている人以外から記事の内容を隠すことができます。

しかし、この時隠すことができるのは本文だけでカスタムフィールドに入力した内容はそのまま表示されてしまいます。

そこで、カスタムフィールドの内容も隠したいときに使われるのが、条件分岐タグの「post_password_required()」です。

パスワード入力が必要かを判断

「post_password_required()」は、そのページがパスワード保護を必要としているかを判断します。そのため、これを使ってカスタムフィールドの表示する箇所を囲みます。ただし、この条件分岐タグは「パスワード保護されている状態」の場合に「true」になるため、これが「false(=パスワードが必要ない、またはパスワードを入力した後)」の場合に表示するため、次のような条件になります。

<?php if (post_password_required() === false): ?>
  <?php the_field('紹介文'); ?>
<?php endif; ?>

「the_field」はAdvanced Custom Fieldsを利用した場合のテンプレートタグです。通常は、「the_post_custom」などを使いましょう。

「=== false」という比較演算子は、論理演算子の否定(!)を使って次のように書き換えることができます。

<?php if (!post_password_required()): ?>
  <?php the_field('紹介文'); ?>
<?php endif; ?>