web-dev-qa-db-ja.com

The_content()を除外します。ページのパスワード保護から

カスタム投稿タイプを表示するためにページテンプレートを使用します。

カスタム投稿タイプのすべてのコンテンツはパスワードで保護する必要があります。いくつかの追加の公開情報については、ワードプレスエディタを使用したいと思います。ワードプレスのパスワード保護からthe_content();を除外できますか?

my-custom-post-type.phpのページ

// ================ PUBLIC AREA BEGINNS ================
<h4>Pubic-Area</h4>

<?php
if (have_posts()) : while (have_posts()) : the_post();
the_content();
endwhile; 
endif;
// ================ PUBLIC AREA ENDS ================   




// ================ PROTECTED AREA BEGINNS ================
if ( post_password_required() ) {
        echo get_the_password_form();
}
else {


$index = 'A';
$terms = get_terms('marke');

foreach ($terms as $term) {
    if($index != strtoupper(substr($term->name, 0, 1))) {
        $index = strtoupper(substr($term->name, 0, 1));

        echo '<h1>'. $index . '</h1>';
    }

    ?>
    <h2><?php echo $term->name; ?></h2>
    <?php $args = array( 'post_type' => 'cpt_auto', 'posts_per_page' => -1, 'orderby' => 'title', 'order' => 'ASC', 
        'tax_query' => array(
            array(
                'taxonomy' => 'marke',
                'field' => 'slug',
                'terms' => array($term->slug)
            )
        )
    );

    // ============================= OUTPUT ==============================
    $loop = new WP_Query( $args ); while ( $loop->have_posts() ) : $loop->the_post();
        the_title('<h3>', '</h3>');
        the_content();

    endwhile;

}
?>


<?php }
// ================ PROTECTED AREA ENDS ================
?>

ありがとうOgni

2
ogni

パスワードが必要な場合は、条件付きタグif ( post_password_required() ) :をチェックに使用してからthe_content()を除外することができます。

// view content, only if password is required
if ( post_password_required() )
    the_content();

また、グローバル変数$postを扱うことも可能です。

if ( ! empty( $post->post_password ) ) :

Ot、最後のチャンスで、それほどうまくないわけではありませんが、クエリを強化するのが便利です。

AND post_password = '' 
1
bueltge