it_proger29
@it_proger29
Битрикс

Как вывести записи от начала к новым и добавить рандомные с низким рейтингом?

Здравствуйте.
В записях есть такой параметр "Рейтинг".
Записи с рейтингом от 10 до 100 должны выводиться по очереди, от большего к меньшему.
А те что меньше или равны 10, должны рандомно появляться среди тех что выводятся по порядку.
Как такое реализовать?

Вывожу записи, записи с рейтингом больше 10, смог вывести. А как подкинуть к ним рандомные, с низким рейтингом. Не знаю(

$query = new WP_Query( array(
                        'post_type' => 'models', 
                        'posts_per_page' => -1,
                        'meta_query' => array(
                          'reiting_query' => array(
                              'key'     => 'reiting',
                              'value'   => 10,
                              'type' => 'NUMERIC',
                              'compare' => '>',
                          ),
                        ),
                        'orderby' => 'reiting_query',
		 ) );
  • Вопрос задан
  • 28 просмотров
Решения вопроса 1
@weart
Основая сложность в
должны рандомно появляться среди тех что выводятся по порядку

Есть подозрение, что никак.
Объединить два массива постов (с высоким по порядку и низким случайным порядком) можно где-то так:

$args1 = array(
	// тут параметры первого массива
	'post__in' => $ids,
);

$args2 = array(
	// тут параметры второго массива с низким рейтингом
	'orderby' => 'rand',
	'post__in' => $ids,
);

$args1 = get_posts( $args1 );
$args2 = get_posts( $args2 );
$merged_ids = array_merge( $args1, $args2 );

$args_final = array(
	// тут параметры общего массива
	'post__in' => $merged_ids,
	'orderby' => 'post__in',
);	

$query = new WP_Query( args_final );


Но случайно подкидывать в массив первых посты из второго - весьма нетривиальная задача, либо я еще не проснулся.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы