如何防止两个多循环中的一个在第二页上重复?

时间:2012-12-07 作者:Andrew

我有一个包含多个循环的页面,但第一个循环会在第二个(或更早的)页面上重复。我想保留格式,但阻止帖子重复。

您可以在此处看到问题:http://violentology.com/blog/

在我的索引中。php文件,我有代码:

<table width="980" border="0" cellspacing="0" cellpadding="0">
        <tr>
            <td colspan="3" style="background-color:#000">
            <?php get_the_image( array( \'meta_key\' => \'feature_img\', \'size\' => \'full size\', \'height\' => \'450\', \'image_class\' => \'post-feature-1\' ) ); ?></td>
        </tr>
        <tr><td height="10"></td></tr>
        <tr>
    <td valign="top">
    <div id="main-col">
    <?php get_template_part( \'loop\', \'index\' ); ?>
    </div>
    </td>
    <td valign="top" id="mainsidebartd">
    <div id="linksidebar">
    <?php get_sidebar(); ?>
    </div>
    </td>
    <td width="10px">&nbsp;</td>
        </tr>
    </table>`
在我的循环中,代码如下:

<!-- First Loop -->
<div id="first_post">
<?php $my_query = new WP_Query(\'posts_per_page=1\');
  while ($my_query->have_posts()) : $my_query->the_post();
  $do_not_duplicate = $post->ID;?>
        <!-- GETTING POST TITLE -->
        <h2><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( \'Permalink to %s\', \'twentyten\' ), the_title_attribute( \'echo=0\' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>

        <!-- GETTING DATE AUTHOR AND COMMENTS -->
        <div class="date"><em><?php the_time(\'F jS, Y\') ?> by <?php the_author_posts_link() ?></em> | <em><?php comments_popup_link( __( \'Leave a comment\', \'twentyten\' ), __( \'1 Comment\', \'twentyten\' ), __( \'% Comments\', \'twentyten\' ) ); ?></em>
        </div>
        <!-- GETTING ACTUAL POST -->
<?php if ( is_archive() || is_search() ) : // Only display excerpts for archives and search. ?>
        <?php the_excerpt(); ?>
<?php else : ?>
        <?php the_content(); ?>
<?php endif; ?>
  <?php endwhile; ?>
</div>

<!-- Second Loop -->
<?php /* Start the Loop. */ ?>
<?php if (have_posts()) : while ( have_posts() ) : the_post(); 
  if( $post->ID == $do_not_duplicate ) continue; ?>

<div id="singlepost">   <!-- POSITIONS INDIVIDUAL POSTS -->
<div class="post-box"><?php get_the_image( array( \'meta_key\' => \'feature_img\', \'size\' => \'medium\', \'height\' => \'200\', \'image_class\' => \'post-feature\' ) ); ?></div>
        <!-- GETTING POST TITLE -->
            <h2><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( \'Permalink to %s\', \'twentyten\' ), the_title_attribute( \'echo=0\' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>

        <!-- GETTING DATE AUTHOR AND COMMENTS -->
        <div class="date"><em><?php the_time(\'F jS, Y\') ?> by <?php the_author_posts_link() ?></em> | <em><?php comments_popup_link( __( \'Leave a comment\', \'twentyten\' ), __( \'1 Comment\', \'twentyten\' ), __( \'% Comments\', \'twentyten\' ) ); ?></em>
        </div>
        <!-- GETTING ACTUAL POST -->
<?php if ( is_archive() || is_search() ) : // Only display excerpts for archives and search. ?>
        <?php the_excerpt(); ?>
<?php else : ?>
        <?php the_content(\'Continue Reading\',FALSE,\'\'); ?>
<?php endif; ?>
</div>

<?php endwhile; // End the loop. ?>

<?php endif; ?>

        <div id="postnav" class="postnav">
            <?php next_posts_link(\'&laquo; Older\') ?> | <?php previous_posts_link(\'Newer &raquo;\') ?>

    </div>`

1 个回复
SO网友:Steve Claridge

你可以用这个

get_query_var(\'paged\')
查看是否正在查看主页、第1页、第2页等。所以你可以把它放在第一个块的周围,这样它就不会显示在第一页之后(我认为这是你想要的):

if ( isset( get_query_var(\'paged\') ) === false )
{
  //do page 1 stuff here.
}
get\\u query\\u var()只是返回“paged=?”位出现在您的URL中,因此它不会为主页返回任何内容。我不确定它在主页上是否返回null或“”,您必须进行检查。

结束

相关推荐

Loop within a loop?

我在我的页面上使用了几个自定义的wp\\u查询循环,第一个循环从某个类别检索新闻,然后用permalink显示其中的一个小摘录。第二个是另一个wp\\u查询,它获取带有几个高级自定义字段的自定义帖子类型。问题是,我想在第二个循环中使用另一个循环,从新闻部分获取3篇文章,并带有缩略图(基本上与第一个循环相反,它将获取所有其他类别)。在阅读了无数关于循环的文章后,我不知道如何在第二个循环中创建“嵌套”循环。我相信这必须很简单,看起来很容易做到。下面是我的代码,其中去掉了很多html。<?php