2012-09-25 46 views
0

有些東西導致我們的數據庫發瘋。這三個查詢是否有可能存在問題?Wordpress查詢

<ul> 
    <?php 
     query_posts(array('category__in'=>38082, 'order-by'=>'post_date','order'=>'DESC','posts_per_page'=>'5')); 
     while (have_posts()) : the_post(); 
    ?>    

    <li><a href="<?php the_permalink(); ?>"><?php echo the_title()?></a></li> 

    <?php endwhile; ?> 
    <?php wp_reset_query();?> 
</ul> 

<ul> 
    <?php 
     query_posts(array('category__in'=>1, 'order-by'=>'post_date','order'=>'DESC','posts_per_page'=>'5')); 
     while (have_posts()) : the_post(); 
    ?>    

    <li><a href="<?php the_permalink(); ?>"><?php echo the_title()?></a></li> 

    <?php endwhile; ?> 
    <?php wp_reset_query();?> 
</ul>  

<ul> 
    <?php 
     query_posts(array('category__in'=>15, 'order-by'=>'post_date','order'=>'DESC','posts_per_page'=>'5')); 
     while (have_posts()) : the_post(); 
    ?>    

    <li><a href="<?php the_permalink(); ?>"><?php echo the_title()?></a></li> 

    <?php endwhile; ?> 
    <?php wp_reset_query();?> 
</ul> 
+1

你可以提供關於*數據庫發瘋的更多細節*嗎? – Tchoupi

+1

你在數據庫中有多少帖子? –

+0

30K +文章。服務器負載繼續下去,就像一個while循環無限持續下去一樣。 – ok1ha

回答

1

query_posts()不是最有效的方法。

首先,嘗試註釋該代碼以確保重負載不在其他地方。

確認問題仍然存在之後,嘗試從query_posts()切換到get_posts()。我還注意到,您將每頁的帖子數作爲字符串而不是數字。

中,一列看起來像這樣之後:

<ul> 
    <?php 
    $posts=get_posts(array('cat'=>38082, 'numberposts'=>5)); 
    foreach($posts as $post){ ?>    

     <li><a href="<?php echo get_permalink($post->ID); ?>"><?php echo $post->post_title;?></a></li> 

    <?php } ?> 
</ul> 

希望它能幫助!

1

這是第一類id是真的嗎?另外,如果您運行的查詢太多,我在那裏看到三個,並且在每個類別中都有大量的帖子,那可能會導致瘋狂的行爲。