页面模板的密码保护

时间:2016-05-17 作者:wkornilow

我正在使用我自己的页面模板来显示某个类别的帖子:

$wp_query = new WP_Query();
$wp_query->query(\'&cat=9\' . \'&paged=\' . $paged);
    while ($wp_query->have_posts()) :
        $wp_query->the_post(); ?>
        <div class="post-list">
            <div class="post-list-title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></div>

            <div class="short-text">
                <?php the_content(\'More >>\'); ?>
            </div>
        </div>
    <?php endwhile; ?>
<?php wp_reset_postdata(); ?>
但当我为这个页面创建密码时,页面的内容就会显示出来。我只需要为此页面创建密码保护,当我输入pass时,将显示此页面中的所有帖子。

2 个回复
最合适的回答,由SO网友:Sumit 整理而成

这是因为在上应用了密码保护get_the_content() 作用您没有使用它,而是编写了自己的自定义循环。

所以,您可以在循环之前更改代码,并使用函数检查页面是否受密码保护post_password_required() 然后使用get_the_password_form() else显示循环。

示例:-

if ( post_password_required( get_the_ID() ) ) {
    echo get_the_password_form( get_the_ID() );
} else {
    $wp_query = new WP_Query();
        $wp_query->query(\'&cat=9\' . \'&paged=\' . $paged);
        while ($wp_query->have_posts()) :
            $wp_query->the_post(); ?>
            <div class="post-list">
                <div class="post-list-title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></div>

                <div class="short-text">
                    <?php the_content(\'More >>\'); ?>
                </div>
            </div>
        <?php endwhile; ?>
    <?php wp_reset_postdata();
}

SO网友:AR Bhatti
<?php global $post;

if ( post_password_required( $post ) ) {
    echo get_the_password_form( $post );
} else {
    $wp_query_pass = new WP_Query(\'&cat=9\' . \'&paged=\' . $paged);
        while ($wp_query_pass->have_posts()) :
            $wp_query_pass->the_post(); ?>
            <div class="post-list">
                <div class="post-list-title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></div>

                <div class="short-text">
                    <?php the_content(\'Next >>\'); ?>
                </div>
            </div>
        <?php endwhile; ?>
    <?php wp_reset_postdata();
}

相关推荐

是否有必要清理wp_set_password用户输入?

我正在尝试向WP注册表添加密码表单。请参见下面的代码。我想知道是否需要清理这个特定的用户输入?(如果是,怎么做?)如果我理解正确,WP为某些东西内置了净化功能,密码可能就是其中之一。对吗?WP会在将其添加到数据库之前自动对其进行清理吗?add_action( \'register_new_user\', \'registration_change_pass\', 10, 99 ); function registration_change_pass( $user_id ) { &