wordpress帖子在自定义页面模板上显示两次

时间:2015-06-12 00:23:40

标签: php wordpress post blogs

不确定代码中有什么问题?但这显示id为64两次的帖子。目标是有一个页面显示某个类别的帖子,该部分有效,只有帖子显示两次。

<?php /* Template Name: Special Template */ ?>
<?php get_header(); ?>
<?php
    $hide_title_text = rwmb_meta('itrans_hide_title_text');
?>
<div id="primary" class="content-area">
    <div id="content" class="site-content" role="main">

<?php
query_posts('cat=64');
while (have_posts()) : the_post();
the_content();
endwhile;
?>

        <?php /* The loop */ ?>
        <?php while  ( have_posts() ) : the_post(); ?>

            <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
                <header class="entry-header">
                    <?php if ( has_post_thumbnail() && !          post_password_required() ) : ?>
                    <div class="entry-thumbnail">
                        <?php the_post_thumbnail(); ?>
                    </div>
                    <?php endif; ?>
                    <?php if($hide_title_text != 1) { ?>
                    <h1 class="entry-title"><?php the_title(); ?></h1>
                    <?php } ?>
                </header><!-- .entry-header -->

                <div class="entry-content">
                    <?php the_content(); ?>
                    <?php wp_link_pages( array( 'before' => '<div class="page-links"><span class="page-links-title">' . __( 'Pages:', 'itransform' ) . '</span>', 'after' => '</div>', 'link_before' => '<span>', 'link_after' => '</span>' ) ); ?>
                </div><!-- .entry-content -->

                <footer class="entry-meta">
                    <?php edit_post_link( __( 'Edit', 'itransform' ), '<span class="edit-link">', '</span>' ); ?>
                </footer><!-- .entry-meta -->
            </article><!-- #post -->

            <?php comments_template(); ?>
        <?php endwhile; ?>

    </div><!-- #content -->
    <?php get_sidebar(); ?>
</div><!-- #primary -->

2 个答案:

答案 0 :(得分:1)

你很早就有了一个小循环:

while (have_posts()) : the_post();
the_content();
endwhile;

然后,您将拥有更大的循环,其中所有格式都以:

开头
        <?php /* The loop */ ?>
        <?php while  ( have_posts() ) : the_post(); ?>
        ...
        <?php the_content(); ?>
        ...
        <?php endwhile; ?>

这将导致页面上有两个帖子。

答案 1 :(得分:0)

最好使用new WP_Query()query_posts()而不是query_posts(),因为<?php $args = array('category' => 64 ); $myposts = get_posts( $args ); foreach ( $myposts as $post ) : setup_postdata( $post ); // get your required stuff here endforeach; wp_reset_postdata(); ?> 会修改主要查询。

有关详情,请点击此处:https://codex.wordpress.org/Function_Reference/query_posts

您可以根据您的要求使用下面提到的方法:

customer_login