Wordpress在最后一页重复两次

时间:2012-03-05 17:02:46

标签: wordpress

我尝试使用两列显示我的帖子,以确保彼此适合,我尝试创建两个垂直列,并显示单独和单独的帖子。在左侧奇怪,甚至在右侧。并且即时通过wp_pagenavi()来使导航工作,其他页面工作正常,显示我想要的帖子,但在最后一页,一个帖子将重复两次。

这是循环部分的代码

<?php if ( have_posts() ) : ?>

            <?php /* Start the Loop */ ?>
        <div id="holder" class="left">

            <?php while ( have_posts() ) : ?> 
            <?php
                $postcount++;
                if( ($postcount % 2) == 0 ) : // skip 'even' posts 
                $wp_query->next_post(); 
                else :
                ?>

                <?php the_post(); ?>

            <div class="fpost">
                <div class="fposttitle">
                    <h1 class="left"><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'toolbox' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h1>
                    <?php if ( comments_open() || ( '0' != get_comments_number() && ! comments_open() ) ) : ?>
                        <div class="combox right">
                            <?php $x = get_comments_number(); if ($x < 10) : ?>
                                <?php comments_popup_link( __( '00', 'toolbox' ), __( '01', 'toolbox' ), __( '0%', 'toolbox' ) ); ?>
                            <?php else : ?>
                                <?php comments_popup_link( __( '00', 'toolbox' ), __( '01', 'toolbox' ), __( '%', 'toolbox' ) ); ?>
                            <?php endif; ?>
                        </div>
                    <?php endif; ?>
                    <div class="clear"></div>
                </div>

                <div class="fcontent">
                    <?php $thumbnail = get_post_meta(get_the_ID(), 'thumbnail', true); 
                    if ($thumbnail) : ?>
                        <img src="<?php echo $thumbnail; ?>" alt="<?php the_permalink(); ?>" />
                    <?php else : ?>
                        <p><?php the_excerpt(); ?></p>
                    <?php endif; ?>
                </div>

                <div class="finfo">
                    <p class="left date"><?php the_time('F j, Y') ?></p>
                    <p class="left cat"><?php the_category(', ') ?></p>
                    <p class="right"><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'toolbox' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark" >Read More</a></p>
                    <div class="clear"></div>
                </div>
            </div>

            <?php endif; ?>
            <?php endwhile; ?>

        </div><!-- #content -->

        <div id="holder2" class="left">

            <?php while ( have_posts() ) : ?> 
            <?php
                $postcount++;
                if( ($postcount % 2) != 0 ) : // skip 'odd' posts
                $wp_query->next_post();

                else :
                ?>

                <?php the_post(); ?>

            <div class="fpost">
                <div class="fposttitle">
                    <h1 class="left"><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'toolbox' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h1>
                    <?php if ( comments_open() || ( '0' != get_comments_number() && ! comments_open() ) ) : ?>
                        <div class="combox right">
                            <?php $x = get_comments_number(); if ($x < 10) : ?>
                                <?php comments_popup_link( __( '00', 'toolbox' ), __( '01', 'toolbox' ), __( '0%', 'toolbox' ) ); ?>
                            <?php else : ?>
                                <?php comments_popup_link( __( '00', 'toolbox' ), __( '01', 'toolbox' ), __( '%', 'toolbox' ) ); ?>
                            <?php endif; ?>
                        </div>
                    <?php endif; ?>
                    <div class="clear"></div>
                </div>

                <div class="fcontent">
                    <?php $thumbnail = get_post_meta(get_the_ID(), 'thumbnail', true); 
                    if ($thumbnail) : ?>
                        <img src="<?php echo $thumbnail; ?>" alt="<?php the_permalink(); ?>" />
                    <?php else : ?>
                        <p><?php the_excerpt(); ?></p>
                    <?php endif; ?>
                </div>

                <div class="finfo">
                    <p class="left date"><?php the_time('F j, Y') ?></p>
                    <p class="left cat"><?php the_category(', ') ?></p>
                    <p class="right"><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'toolbox' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark" >Read More</a></p>
                    <div class="clear"></div>
                </div>
            </div>

            <?php endif; ?>
            <?php endwhile; ?>

        </div><!-- #content -->



        <?php else : ?>

            no post


    <?php endif; ?>

        <div class="clear"></div>
             <div id="nav"> <?php wp_pagenavi() ?> </div>
    </div><!-- #primary -->

我想也许是因为最后一页,没有足够数量的帖子,但无法弄清楚为什么帖子重复。

更新:我刚刚尝试添加一个新帖子,一切正常。但当我添加另一篇文章时,最后一页再次重复同一篇文章。

1 个答案:

答案 0 :(得分:1)

可能应该包含这个作为答案而不是评论,如果你有一个奇数的帖子,你不会将你的$ postcount变量重置为0,所以你的第二个循环不一定开始与第一个循环相同的条件。所以在你的最后一页你能够注意到这种情况发生了,但是你可能会在其他页面上完全跳过某些帖子:

        <?php if ( have_posts() ) : ?>

        <?php /* Start the Loop */ ?>
        <div id="holder" class="left">
        <?php $postcount = 0; ?>
        <?php while ( have_posts() ) : ?> 
        <?php
            $postcount++;
            if( ($postcount % 2) == 0 ) : // skip 'even' posts 
            $wp_query->next_post(); 
            else :
            ?>
            <?php the_post(); ?>
        <?php endif; ?>
        <?php endwhile; ?>
        ...
    </div><!-- #content -->

    <div id="holder2" class="left">
    <?php $postcount = 0; ?>
        <?php rewind_posts();//rewind the post counter so you can do another loop ?>
        <?php while ( have_posts() ) : ?> 
        <?php
            $postcount++;
            if( ($postcount % 2) != 0 ) : // skip 'odd' posts
            $wp_query->next_post();

            else :
            ?>

            <?php the_post(); ?>

        ...

        <?php endif; ?>
        <?php endwhile; ?>

    </div><!-- #content -->