【WordPress】投稿のパスワード保護を有効にする

こんにちは、ryohei(@ityryohei)です!

本記事では、WordPressで投稿のパスワード保護を有効にする方法をご紹介しています。テーマ開発者やカスタマイズをしている方に向けた内容になっています。

WordPressで投稿のパスワードが有効にならない……どうすればいいの?

上記の疑問にお答えします。

では、解説していきます。

パスワード保護に使用する関数

投稿や固定ページのパスワード保護には下記の関数を使用します。

  • post_password_required()
  • get_the_password_form()

それぞれ下記の処理を行います。

post_password_required()

投稿にパスワードが必要がどうかを判定する関数です。引数には投稿オブジェクトまたは投稿IDを指定します。返り値は真偽値(true|false)です。パスワード入力が不要であればfalseを、それ以外の場合はtrueを返します。

post password required()

get_the_password_form()

投稿に必要なパスワードを入力するフォームを取得します。パスワードを入力するフィールドと送信ボタンが表示されます。デザイン等はCSSで変更することができます。

get_the_password_form()

上記の関数を使用してパスワード保護を有効にすることができます。

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

では実際にパスワード保護を有効にします。

前項でご紹介したように投稿のパスワード保護を有効にするには、2つの関数をテンプレートファイル(single.phpやpage.php)に追加する必要があります。

全体を記載すると長くなってしまうため割愛しますが、コンテンツ部分にフォーカスすると下記のようになります。

<?php if(!post_password_required($post->ID)): ?>

    <!-- パスワード認証後に表示するコンテンツ -->
    <p>パスワード認証済みです。</p>
  
<?php else: ?>
<?php echo get_the_password_form(); ?>
<?php endif; ?>

上記を追加した状態で固定ページや投稿で、ステータスと公開状態→公開→パスワード保護で任意のパスワードを指定すると、投稿を開いた際にパスワードの入力が促されます。認証に成功すると条件分岐内のコンテンツ、上記例では「パスワード認証済みです。」が表示されます。

ここまでの内容でパスワード保護を有効にすることができます。

最後に

私が勤めているWeb制作会社では、既存のテーマを流用したサイト制作というのはほとんどなくて、基本的にクライアントの要望に合わせたオリジナルテーマを一から作成しています。そのため毎回必要最低限の機能だけを実装する結果となり、要件にない機能は実装しません。もちろんパスワード保護は最低限必要な機能に含まれるためテストの段階で確認して、実装されていなければ追加します。ただ何度かパスワード保護の実装を忘れた経験があるので、今後忘れないようにしよう!という決意代わりの投稿でした。

以上、WordPressで投稿のパスワード保護を有効にする方法のご紹介でした!

Adobe Creative Cloudを通常価格で購入していませんか?

Adobe Creative Cloud(Adobe CC)はAdobe社が提供するクリエイター向けのサービスです。WEB制作の幅を広げる「Photoshop・Illustrator・XD」Youtuberや動画クリエイターの編集作業に欠かせない「Premiere Pro・After Effects」など全20以上のアプリが提供されており、幅広いプランが用意されています。

コンプリートプランはAdobe CCの全20以上のアプリが使用できるプランです。多くのアプリが使用できるため定価で購入すると年間7万円以上するプランですが、デジタルハリウッドのAdobeマスター講座では「基礎動画教材+Adobe CC コンプリートプラン(12ヵ月)」がセットになって39,980円(税込)で利用できます。定価より安価にAdobe Creative Cloudのライセンスを購入でき、以降のライセンス更新も可能。動画教材で基礎スキルを習得できるので、入門する方にも便利な講座です。詳しくは下記のリンクからチェックしてみてくださいね。

Adobeマスター講座はこちら

おすすめの書籍