2012-08-01 37 views
0
$hpPromo = new WP_Query(array('post_type' => 'homepage_promo', 'orderby' => 'rand')); 
print_r($hpPromo->posts); 

每次array是完全相同的順序。爲什麼我的帖子沒有隨機化?是否因爲我正在使用定製post_type?請指教。wordpress orderby =蘭德不工作

**編輯**

在此期間,我這個做我知道如何(低效率)的唯一途徑。通過一切手段,請張貼比這更好的答案(對於開發商的緣故無處不在!)

$hpPromo = new WP_Query(array('post_type' => 'homepage_promo', 'orderby' => 'rand')); 
$count = count($hpPromo->posts); 
$posts = (array)$hpPromo->posts; 
$promo_id = $posts[rand(0, $count-1)]->ID; 
wp_reset_query(); 
$hpPromo = new WP_Query(array('post_type' => 'homepage_promo', 'p' => $promo_id)); 
$hpPromo->the_post(); 
the_content(); 

回答

9

嘗試取出過濾器可能與排序依據查詢來干擾。

remove_all_filters('posts_orderby'); 
$hpPromo = new WP_Query(array('post_type' => 'homepage_promo', 'orderby' => 'rand')); 
print_r($hpPromo->posts); 
+0

你,我的朋友,很好。 – Jacksonkr 2012-08-01 20:15:29

+2

謝謝傑克。您一直使用的插件可能在此過濾器上添加了鉤子。很高興,它的工作。 – 2012-08-02 02:40:19