2012-06-28 24 views
1

我試圖根據正在查看的頁面類型使用不同的WP_Query對象。我想這樣做,而不必一遍又一遍地重複循環。我只想在條件語句中使用不同的WP_Query語句。這是可能的,還是有另一種方式來做到這一點?現在我只能在我的頁面上獲得空輸出。代碼如下。如何在WP_Query中使用if/else語句

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 

// retrieve posts based on category or pages 
$args=array(
    'category_name'=>'name', 
    'posts_per_page'=>10, 
    'paged'=>$paged 
); 

if (is_page()) {   
    //create a new instance 
    $wp_query = new WP_Query($args); 
} 

else { 
    //create a new instance 
    $wp_query = new WP_Query(); 
} 

// the Loop 
while ($wp_query->have_posts()) : $wp_query->the_post(); 

// set $more to 0 in order to only get the first part of the post 
global $more; 
$more = 0; 

// Do post layout here 

endwhile; 
+1

爲什麼在括號中包含'if's,而不是'while'。 –

+0

這是由於wordpress代碼通常使用endwhile/endif for循環以及括號中的許多其他內容。我剛習慣這樣工作。 – Orophen

+0

你可能想採用其中一種。兩者混合通常意味着有兩個或兩個以上的人蔘與其中,並且項目經理從未設定要遵循的標準(BIG問題) –

回答

0
$my_args = is_page() ? $args : null; 

$my_query = new WP_Query($args); 

while ($my_query->have_posts()) : $my_query->the_post(); 
    ... 

$wp_queryglobal variable。避免將它用於這些事情。