В шаблоне Newsmatic есть слайдер. Как сделать первую запись рандомной?
Этот слайдер состоит из 2 частей:
Слайдер (основной баннер) — использует WP_Query
Блок ниже слайдера ("trailing posts") — использует get_posts()Справа вроде бы рандомно выводит материалы.
А вот чтобы левый блок выводил случайные:
В этом блоке используется $slider_args, который передаётся в WP_Query.
Чтобы сделать случайный порядок, нужно добавить 'orderby' => 'rand' в массив $slider_args.
Найди эту строку:
$slider_args = apply_filters( 'newsmatic_query_args_filter', $slider_args );Добавь после неё:
$slider_args['orderby'] = 'rand';сам файл: /public_html/wp-content/themes/newsmatic/template-parts/main-banner/template-four.php
P.S. Я отключил рандомизацию (т.к. высота-ширина - статистические и качество картинок в слайдере плохое). Это влияет на первое впечателение.
Поэтому закомментировал рандомно, а добавил чтобы в слайдере записи начинались с 3 записи (последние опубликованные). И ограничил 3 записями.
Так проще, проработать 5-7 записей с нормальными преьвью и показывать качественный слайдер.<?php $slider_args = apply_filters( 'newsmatic_query_args_filter', $slider_args ); // $slider_args['orderby'] = 'rand'; // Пропускаем первые 2 записи $slider_args['offset'] = 2; // Если ты хочешь показать 3 записи, начиная с 3-й: $slider_args['posts_per_page'] = 3; $slider_query = new WP_Query( $slider_args );
Если выводить по ID
$slider_args = array( 'post_type' => 'post', 'post__in' => array(43767, 43560), // ← твои ID 'orderby' => 'post__in', // чтобы порядок был как в массиве 'posts_per_page' => -1 // все указанные записи ); // Если нужно ограничить количество (например, 3) // $slider_args['posts_per_page'] = 3;
Вывод по определенной метке
// Только записи с меткой (тегом) "TOP" $slider_args['tag'] = 'top'; // Показываем 3 штуки $slider_args['posts_per_page'] = 3;
См.также:
Как в плагине Newsmatic : Posts List сделать вывод материалов в сайдбаре рандомно?
В шаблоне Newsxo есть слайдер слева. Как сделать чтобы записи рандомно и ограничить 3 шт?
Вывод рандомно, но из определенной категории:
// Укажи нужные ID категорий (массив целых чисел) $target_category_ids = array(72); // замени на свои ID 15, 23, 42 $slider_args['orderby'] = 'rand'; // Показываем 3 штуки $slider_args['posts_per_page'] = 3; $slider_args['category__in'] = $target_category_ids;
Еще более интереснее:
Берём записи с 3-й по 12-ю (пропускает 2 самых свежих, затем берёт следующие 10),
Выбирает из них 3 случайные,
Без привязки к категориям.// Получаем 10 записей, начиная с 3-й по дате (пропускаем первые 2) $recent_posts = get_posts(array( 'numberposts' => 5, 'offset' => 2, 'post_status' => 'publish', 'post_type' => 'post', 'fields' => 'ids', // только ID 'orderby' => 'date', 'order' => 'DESC', )); // Выбираем 3 случайные из этих 10 if (!empty($recent_posts)) { shuffle($recent_posts); $selected_ids = array_slice($recent_posts, 0, 3); $slider_args = array( 'post__in' => $selected_ids, 'posts_per_page' => 3, 'orderby' => 'post__in', // чтобы сохранить случайный порядок ); } else { // На случай, если записей меньше 3 — использовать пустой слайдер или fallback $slider_args = array( 'post__in' => array(0), // гарантирует отсутствие результатов 'posts_per_page' => 0, ); }