2010-05-16 96 views
4

波紋管功能工作正常,但我需要在循環內運行它。如果這樣做,帖子內容實際上是從我的WP_Query的最後一篇文章中獲取的。不是來自應該出現的那個。我可以在循環內運行新的WP_Query而不影響循環嗎? (wordpress)

是否有任何方式來運行我的查詢,並離開循環不受影響

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

當函數中包含新查詢時是否缺少一些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; ?> 
+0

我不錯過任何標籤。我的代碼沒有錯誤地工作 – Radek 2010-05-16 20:00:43

+0

爲什麼你在一個函數中使用新的查詢?你需要這樣做嗎? – markratledge 2010-05-17 13:43:15

+0

你確定它不會影響我已經運行的循環嗎?如果是的話,那麼我很幸運,因爲我需要這樣做。 – Aayush 2010-08-22 11:56:35

10

的定爲這是調用wp_reset_postdata大功告成通過您分開WP_Query實例循環之後。

由於WordPress使用全球$post變量,所以無論何時在任何WP_Query對象上調用the_post()時都會顯示該問題。當你從Radek的2個帖子查詢中調用它時,它會丟失原始WP_Query對象的軌跡。