波纹管功能工作正常,但我需要在循环内运行它。如果这样做,帖子内容实际上取自我的WP_Query的最后一篇文章。不是应该出现的那个。
有没有办法运行我的查询并让 The Loop不受影响?
function recent_post_by_author() {
echo '<div class="recent_post_by_author">';
$my_query = new WP_Query('author_name=Radek&showposts=2');
while ($my_query->have_posts()) : $my_query->the_post(); ?>
<a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"> <?php the_title(); ?></a><BR>
<?php endwhile;
echo '</div>';
}
答案 0 :(得分:11)
对此的修复是在循环完成单独的WP_Query实例后调用wp_reset_postdata。
问题出现了,因为WordPress使用全局$post
变量,只要在任何WP_Query对象上调用the_post()
,就会设置该变量。当您从2-posts-from-Radek查询中调用它时,它将丢失对原始WP_Query对象的跟踪。
答案 1 :(得分:0)
在函数中包含新查询时,是否遗漏了一些php开始和结束标记?这可以作为一个独立的新查询循环,可以在主WP循环中多次使用:
<?php $my_query = new WP_Query('author_name=Radek&showposts=2'); ?>
<?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
<a href="<?php the_permalink() ?>" title="<?php the_title(); ?>">
<?php the_title(); ?></a>
<?php endwhile; ?>