Я пытаюсь поднять сообщения из пользовательского типа сообщения и пользовательской таксономии. я использовал следующий запрос для достижения этой цели:WP-Query orderby rand с пользовательским типом сообщения и пользовательской таксономией возвращает упорядоченный вывод
$term_list = wp_get_post_terms($post->ID, 'influencers', array("fields" => "all"));
$the_query = new WP_Query(array(
'posts_per_page' => -1,
'post_status' => 'publish',
'post_type' => 'influencer',
'orderby' => 'rand',
'tax_query' => array(
array(
'taxonomy' => 'influencers',
'field' => 'slug',
'terms' => $term_list[0]->slug,
)
),
)
);
Когда я использую $ the_query-> Запрос
print_r($the_query->request);
для печати SQL я получаю следующий результат:
SELECT wp_posts.* FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) WHERE 1=1 AND (wp_term_relationships.term_taxonomy_id IN (47329)) AND wp_posts.post_type = 'influencer' AND ((wp_posts.post_status = 'publish')) GROUP BY wp_posts.ID ORDER BY RAND()
Кажется законным, верно? Я даже отправился в базу данных и попробовал запрос, он отлично работает с рандомизацией и каждый раз возвращает записи в случайном порядке.
Но по какой-то причине, когда я пытаюсь срывать массив в идентификаторах:
$post_ids = wp_list_pluck($the_query->posts, 'ID');
print_r($post_ids);
Я получаю массив в том же порядке, каждый раз, когда:
Array ([0] => 267133 [1] => 267137 [2] => 267139 [3] => 267141 [4] => 267143)
Когда я пытаюсь поставить WP_Query в цикле:
while ($the_query->have_posts()) {
$the_query->the_post();
//code to display loop
}
wp_reset_postdata();
Он также возвращает сообщения в организованном порядке, каждый раз.
Любая идея, как заставить WP_Query возвращать сообщения в рандомизированном порядке, без применения внешних функций?
Спасибо!
Я бегу на WP-Engine. Какую функцию нужно активировать? –
check [этот сайт объясняет, где найти эту опцию] (http://wpexplorer-themes.com/total/docs/random-order-wpengine/), в любом случае эта рандомизация является убийцей производительности, но я думаю, вы понимаете, что – okolimar
Спасибо , Мне нужно было это для конкретного проекта, теперь он отлично работает:> –