页面循环正在循环来自同一站点上的自定义循环的内容。如何避免这种情况?

时间:2012-10-18 作者:JochenSchmidt

我制作了一个自定义主页(带有模板),在这个网站上使用了三个循环:两个类别循环,在网站底部是页面的主循环(页面内容)。问题是:第一个循环很好,但第三个(主页循环)是从另外两个循环中的一个循环内容,而不是从实际的站点!?!

我认为这是因为主页循环是该页面上的最后一个循环。我怎样才能避免呢?

这是我的代码:

第一个循环:

<?php
$posts = get_posts(\'category_name=slider\');
foreach($posts as $post) :
setup_postdata($post);
?>
    <div class="startslide" style="background-image:url(<?php $src = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), array( 670,320 ), false, \'\' ); echo $src[0]; ?>)">
        <h4><?php the_title(); ?></h4>
        <div class="subline"><?php the_content(); ?></div>
    </div>
    <?php endforeach; ?>
第二个:

<?php
$posts = get_posts(\'category_name=meilensteine&numberposts=3\');
foreach($posts as $post) :
setup_postdata($post);
?>
            <div class="meilpost">
                <h3><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h3>
              <p><?php echo excerpt(14); ?></p>
         </div>
         <?php endforeach; ?>
第三个(主页循环):

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

    <?php while (have_posts()) : the_post(); ?>
        <h1><?php the_title(); ?></h1>
        <?php the_content(); ?>
        <?php endwhile; ?>
    <?php endif; ?>

2 个回复
SO网友:stealthyninja

使用wp_reset_query() 在每个自定义查询之后:

<?php endforeach; ?>
<?php wp_reset_query(); ?>
您可能还想看看wp_reset_postdata() 功能,这可能更适合您。

Update
试试这个:

<?php
global $post;
$tmp_post = $post;

$my_posts = get_posts( \'category_name=slider\' );
foreach ( $my_posts as $my_post ) :
setup_postdata( $my_post );
?>
    <div class="startslide" style="background-image:url(<?php $src = wp_get_attachment_image_src( get_post_thumbnail_id( $my_post->ID ), array( 670,320 ), false, \'\' ); echo $src[0]; ?>)">
        <h4><?php the_title(); ?></h4>
        <div class="subline"><?php the_content(); ?></div>
    </div>
<?php endforeach; ?>
<?php $post = $tmp_post; ?>

<?php
$tmp_post = $post;

$my_posts = get_posts( \'category_name=meilensteine&numberposts=3\' );
foreach ( $my_posts as $my_post ) :
setup_postdata( $my_post );
?>
    <div class="meilpost">
        <h3><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h3>
        <p><?php echo excerpt(14); ?></p>
     </div>
<?php endforeach; ?>
<?php $post = $tmp_post; ?>

<?php if ( have_posts() ) : ?>
    <?php while ( have_posts() ) : the_post(); ?>
        <h1><?php the_title(); ?></h1>
        <?php the_content(); ?>
    <?php endwhile; ?>
<?php endif; ?>

SO网友:mirage

函数wp\\u reset\\u query()应该有帮助http://codex.wordpress.org/Function_Reference/wp_reset_query

结束

相关推荐

在FrontPage上,分页在某种程度上是有效的,当点击“prev”时不会更新

我遵循了本页上非常简单的教程:http://wp.tutsplus.com/tutorials/wordpress-pagination-a-primer/ (向下滚动到“更好的解决方案”)-他让它看起来很简单,它的工作原理是分页链接在那里,URL在地址栏中更改,但当单击2或3时,它实际上不会更新。。网站-chrisayreswebdev。com/besh我知道我错过了什么,只是不知道错过了什么。有什么想法吗?谢谢编辑:函数。php:function paginate() { global $wp