Wordpress: Loop Help

时间:2011-09-16 作者:Louis Stephens

今天早上我在这个网站上工作,我的静态页面遇到了一些问题。

我有一个“特色”帖子部分,我使用:

<div id="featured">
    <img src="<?php echo get_bloginfo(\'template_directory\'); ?>/images/house.jpg" alt"Buy Me" />

    <div class="info">
     <?php query_posts(array (\'tag\'=> \'featured\' )); ?>
    <?php while (have_posts()) : the_post(); ?>

    <h1><a href="<?php the_permalink(); ?>"> <?php the_title(); ?></a></h1>
    <p><?php the_time(\'F jS, Y\') ?> by <?php the_author() ?></p>
    <?php endwhile; ?> 

    </div>

</div>
上面的工作很好,但是,页面内容是我遇到问题的地方。我有一个内容部分,它将“页面”实际内容拉入其中,我使用:

<div id="about">
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

        <div <?php post_class() ?> id="post-<?php the_ID(); ?>">

            <h2><?php the_title(); ?></h2>


            <div class="entry">
                <?php the_content(); ?>
            </div>


        </div>

    <?php endwhile; ?>

    <?php include (TEMPLATEPATH . \'/inc/nav.php\' ); ?>

    <?php else : ?>

        <h2>Not Found</h2>

    <?php endif; ?>


</div>
当我刷新页面时,两个部分现在都显示了特色帖子,而不是页面内容。有人知道为什么会这样吗?

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

您正在使用query_posts() 为您的特色帖子custom loop. 正如法典所说:don\'t do that.

这个query_posts() 函数用于修改Primary Loop. 如果需要自定义循环,请使用例如。$my_custom_query = new WP_Query( $args ).

请参见此处a good break-down of custom-loop options.

SO网友:Louis Stephens

谢谢Chip。在阅读了您的回复后,我将其改写为:

<?php $featured_query = new WP_Query( array (\'tag\'=> \'featured\' ) ); ?>

<?php while ( $featured_query->have_posts() ) : $featured_query->the_post();?>

    <h2><a href="<?php the_permalink(); ?>"> <?php the_title(); ?></a></h1>

<?php endwhile;?>

<?php wp_reset_postdata(); ?>
现在一切似乎都很好。我感谢你的帮助。

结束

相关推荐

Custom loop off by one post

在我的循环中,我想显示9篇不包括类别X、Y、Z和所有粘性帖子的帖子。在帖子3和5之间,我想放置一个带有自定义模板的粘性帖子。以下操作有效,但它将粘性帖子视为第一个循环中的4个帖子,这会导致丢失一个常规帖子。我必须使用WP 3.0.3<?php if (have_posts()) : ?> <?php $count = 0;?> <?php $sticky_posts = get_option(\'sticky_posts\'