2010-07-07 68 views
0

我有一個側邊欄顯示在主頁面內容之前的代碼中。我寫了這個(janky)函數來吸引最近的帖子和評論。但是,它很好用,它把我所有的頁面都搞砸了,並把所有的帖子都放在了它們上面。如何重置/倒回查詢或製作新的查詢,以便我的所有網頁都顯示正確的內容?WordPress的回退查詢不起作用

<?php rewind_posts(); ?><?php wp_reset_query(); ?>的arent做的伎倆,我

這裏是我的查詢:

$comments = get_comments('number=10'); 
$posts = get_posts('posts_per_page=10&category=6'); 


$most_recent = array(); 

foreach ($comments as $comment) 
    $most_recent[strtotime($comment->comment_date_gmt)] = $comment; 

foreach ($posts as $post) 
    $most_recent[strtotime($post->post_date_gmt)] = $post; 

unset($comments, $posts); 

krsort($most_recent); 

$most_recent = array_slice($most_recent, 0, 10); 

foreach ($most_recent as $post_or_comment) { 

    $is_post = isset($post_or_comment->post_date_gmt); 
    $comment_id = $post_or_comment->comment_ID; 
    $post_id = $post_or_comment->ID; 
$comment_post_id = $post_or_comment->comment_post_ID; 

if ($is_post == 1) 

    { ?> <li><a href="<?php echo get_permalink($post_id); ?>"><?php echo $post_or_comment->post_title; ?></a><span class="tag"><?php echo the_category($post_id); ?></span></li><?php } 

else 
    { ?><li> <a href="<?php echo get_permalink($comment_post_id); ?>"><?php echo get_the_title($comment_post_id); ?></a><span class="tag">Comment</span></li><?php } 

    // output comments and posts 
} 

輸出評論和帖子 }

+0

「我寫了這個(janky)函數來吸引最近的帖子和評論」 - 我想你會發現我寫了它的伴侶;) – TheDeadMedic 2010-07-07 08:04:40

回答

0

嘗試使用$my_posts$my_comments代替,以防萬一WP正在使用相同名稱的全局變量(雖然我不認爲它是)。

此外,在您的foreach循環中,只有在知道對象類型時才應該轉換變量,否則您正在訪問不存在的屬性;

foreach ($most_recent as $post_or_comment) { 

    $is_post = isset($post_or_comment->post_date_gmt); 
    if ($is_post) { 
     $post_id = $post_or_comment->ID; 
    } else { 
     $comment_id = $post_or_comment->comment_ID; 
     $comment_post_id = $post_or_comment->comment_post_ID; 
    } 
} 

rewind_posts()在這裏不起作用。請在foreach循環結束後立即致電wp_reset_query()

+0

這很好。感謝您的幫助,我並不是故意說你的代碼很笨拙,我的意思是這是WP中最好的方式。我感謝幫助:) – wesbos 2010-07-07 15:12:14

+0

只是在開玩笑 - 這是毫無疑問的,但它可能更加笨拙;) – TheDeadMedic 2010-07-07 15:37:50