0
$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();
4

1 に答える 1

14

orderby クエリに干渉している可能性のあるフィルターを削除してみてください。

remove_all_filters('posts_orderby');
$hpPromo = new WP_Query(array('post_type' => 'homepage_promo', 'orderby' => 'rand'));
print_r($hpPromo->posts);
于 2012-08-01T16:35:42.847 に答える