web関連

wordpressのパスワード保護が上手く反映されない件

wordpressのパスワード保護が上手く反映されない件

カスタム投稿のシングルページでカスタムフィールドのリピーターフィールドとか使ったら何故かパスワード保護が効かなくて、中身が丸見えになった時の備忘録

実際に使ったコード

以下のコードを使えば、カスタムフィールドとかも隠れます。

<?php if( post_password_required($post->ID) ): ?>
<?php echo get_the_password_form($post->ID); ?>//入力フォームとか出力
<?php else: ?>
// パスワードかけて隠したいループを丸々入れる
<?php endif; ?>
今回の件だとリピーターフィールド出力するための「if ( have_rows(~…」から丸々入れると全部隠れた

原因

どうにもコンテンツエディタを出力する

// これ
<?php the_content(); ?>

があるとthe_content()で出力する部分は勝手に「パスワード保護」がかかるみたい。
けれど、カスタムフィールドとかと一緒に使うと当然出力が違うからカスタムフィールドは丸見え状態になっちゃうので最初に紹介した条件分岐でまるっと囲まないと駄目みたい。

わかっちゃえば簡単だな
カスタムフィールドのリピーターフィールド出力して「パスワード保護」かけられず、プラグイン?function.phpになんか変なコード書いてない?書き方が悪い?理由がわからずめっちゃ苦戦したわ めったに「パスワード保護」とか使わんしなー… いままで作ったサイト全部見直さないとだ(小声)