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

언제나 array과 정확히 같은 주문입니다. 내 게시물이 무작위로 왜 표시되지 않습니까? 내가 사용자 정의post_type을 사용하고 있기 때문입니까? 제발 조언.wordpress orderby = rand not working

** 한편 EDIT **

내가이에게 내가 얼마나 (비효율적) 알고있는 유일한 방법은하고 있어요. 꼭 이것보다 더 나은 대답을 게시하시기 바랍니다 (사방 개발자의 이익을 위해!)를

$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

는 ORDERBY 쿼리를 방해 할 수있는 제거 필터를 사용해보십시오.

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

너, 내 친구, 좋다. – Jacksonkr

+2

감사합니다 잭. 사용중인 플러그인이이 필터에 후크를 추가했을 수 있습니다. 그것이 효과적이기 때문에 기쁘다. –