Вывести рандомно 8 постов получив массив записей через WP_Query?

Приветствую всех !
Вот таким вот образом получаю в $myposts2 массив своих записей
$myposts2 = new WP_Query( array( 
			'post_type' => 'tovari',
			'tax_query' => array(
		     array(
			 'taxonomy' => 'razdel-tovar',
			 'field'    => 'slug',
			 'terms'    => 'srochno-prodam'
		     )
		     ),
			'posts_per_page' => 20) );

Так же эти получаемые записи(кастомные) имеют мета поля в wp_post_meta
Как из полученного массива выбрать рандомно 8 объектов и вывести их значения ?
  • Вопрос задан
  • 747 просмотров
Решения вопроса 1
@PRC Автор вопроса
В общем это так делается, кому интересно
Выбираете свои посты таким образом
$myposts2 = get_posts( array( 
      'post_type' => 'tovari',
      'tax_query' => array(
         array(
       'taxonomy' => 'razdel-tovar',
       'field'    => 'slug',
       'terms'    => 'srochno-prodam'
         )
         ),
      'posts_per_page' => 20) );

И через цикл foreach выводите их
foreach (array_rand($myposts2, 8) as $currentIn) {
<?php echo $myposts2[$currentIn]->post_title; ?>
}


Спасибо OVK2015 за помощь)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Ответ Александр Синицын правильный. Почти.
Ставите в posts_per_page нужное количество (8), и добавляете orderby:
$myposts2 = get_posts( 
    array( 
        'posts_per_page' => 8,
        'post_type' => 'tovari',
        'orderby' => 'rand',
        'tax_query' => array(
            array(
                'taxonomy' => 'razdel-tovar',
                'field'    => 'slug',
                'terms'    => 'srochno-prodam'
            ),
        ),
    ),
);

Получаете ровно 8 рандомных постов. И никаких танцев с бубном в цикле.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы