カスタム投稿で「パスワード保護」がうまくいかない原因と解決

WordPressに最初からある機能の「パスワード保護」では、個別ページや投稿記事にパスワードをかけることができます。
しかし、ADFを使用したカスタム投稿ではうまくいかなかったので、その解決方法を記事に書きました。

1、カスタム投稿の投稿記事にパスワードをかける

パスワード保護を設定しても、パスワード入力画面にいかず、通常通りページをみれてしまう。

2、原因

ページ内にthe_content()が書かれていないとWPは本文がないと判断して、パスワードをかけてくれないようです。
(固定ページやデフォルトの投稿では勝手にthe_content()が組み込まれた記述になっている。)

3、解決法

記事詳細のphpを編集します。(single-カスタム投稿タイプ.php)
赤字部分を追加

<?php get_header(); ?>

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

ここにカスタム投稿の記述

<?php else: ?>
<?php echo get_the_password_form(); ?>
<?php endif; ?>

<?php get_footer(); ?>

元々作成した、カスタム投稿を書こうようにして記述を追加します。
これで、カスタム投稿でもパスワード保護を使用できるようになります。

おまけ 「保護中:」を非表示にする

記事タイトルの前に「保護中:」
記事にパスワード保護をかけ、記事タイトルを表示した時「保護中:タイトル」という表示になってしまいます。
function.phpに記述をするとタイトルのみ表示することができます。

<?php
add_filter(‘protected_title_format’, ‘remove_protected’);
function remove_protected($title) {
return ‘%s’;
}
?>

■関連エムトラブログ
【簡単】WordPressでページごとに「パスワード保護」をかける
https://mtrad-blog.com/2021/10/11/post-2572/

■参考記事
・カスタム投稿でパスワード保護が効かない
https://espa.hida-ch.com/e815145.html
・記事タイトルの前に「保護中:」 タイトルの変更
https://bambooworks.co/wordpress-password-customize/

  • URLをコピーしました!
目次