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に記述をするとタイトルのみ表示することができます。
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/