2016-02-19 62 views
0

我面對的是客戶要求,他有100個產品分頁(每頁10個),他只希望在前10個產品上隨機選擇,其他頁面不要隨機(對於除1之外的其他分頁)如何隨機只在10個第一個最近的帖子?

我有這個疑問:

$args = array(
    'post_type' => array('products'), 
    'paged'=> (get_query_var('paged') ? get_query_var('paged') : 1), 
); 
$products = new Wp_Query($argss); 
... Loop here ... 
... End loop ... 
... Pagination ... 

產品表現不錯,分頁作品,只有我問自己,如何實現這一目標。如果我使用:

if($paged == 1) $args['orderby'] = 'rand'; 

它會隨機在第一頁上,但他會挑比前10個產品之外的其他產品,我們的目標是隻隨機前10個產品首頁搜索頁面上,無需拿起別人。

感謝您的幫助。

+1

也許''上$產品shuffle' - > posts'如果這是第一頁? –

+0

是的,好主意,我測試了它,但如何將它添加到循環? – user44321

+0

對不起,我得到它與您的解決方案,我不需要頭痛的循環,只是洗牌($ products->職位);在Wp_Query($ args)之後; 謝謝MAAAN,你保存我的日子 – user44321

回答

1

請嘗試以下

if(get_query_var('paged', 1)==1) 
{ 
    shuffle($products->posts); 
} 

$products = new Wp_Query($argss);

0

試試這個。

如果頁面是1,那麼設置'order' => 'rand'

 $args = array(
      'post_type' => array('products'), 
      'paged'=> (get_query_var('paged') ? get_query_var('paged') : 1), 
      'order_by' => 'ID', 
      'post_status'=> 'publish', 
      'posts_per_page' => -1, 
     ); 

     if($args['paged'] == 1){ 
      $args['order'] = 'rand'; 
     } else{ 
      $args['order'] = 'DESC'; 
     } 
     $products = new Wp_Query($args); 
+0

感謝您的支持,但它會從其他頁面接收其他產品,它只包含隨機的前10頁產品。 – user44321

相關問題