2012-08-01 97 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