$hpPromo = new WP_Query(array('post_type' => 'homepage_promo', 'orderby' => 'rand'));
print_r($hpPromo->posts);
每次array
的顺序完全相同。为什么我的帖子不是随机的?是因为我使用的是自定义post_type
吗?请指教。
**编辑**
与此同时,我正在这样做,这是我知道如何做的唯一方法(效率低下(。无论如何,请发布一个比这个更好的答案(为了世界各地的开发人员!
$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();
尝试删除可能干扰 orderby 查询的筛选器。
remove_all_filters('posts_orderby');
$hpPromo = new WP_Query(array('post_type' => 'homepage_promo', 'orderby' => 'rand'));
print_r($hpPromo->posts);