Задать вопрос
caldary
@caldary

Как создать нестандартный цикл вывода постов WordPress?

Друзья, всем привет. Помогите пожалуйста с решением задачи.
Имеется блок для вывода 6-ти постов, его структура едина для любой категории. Но в категории может быть всего 3 поста, а может быть и 17. Ограничить количество при выводе - не проблема. Проблема в другом:
как в случае, если в указанной категории всего 3 поста, остальные 3 ячейки занять свежими постами из всех категорий, исключая те самые 3, уже показанные? Разумеется, при этом сохранив максимум в 6 постов на весь этот нестандартный цикл.
Спасибо!
  • Вопрос задан
  • 45 просмотров
Подписаться 1 Средний 1 комментарий
Помогут разобраться в теме Все курсы
  • Stepik
    Курс по WordPress с нуля до результата. Создание сайтов без кода
    2 недели
    Далее
  • Яндекс Практикум
    Фулстек-разработчик расширенный
    20 месяцев
    Далее
  • beONmax
    Профессия WordPress разработчик
    3 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 1
artzolin
@artzolin Куратор тега WordPress
php, WordPress разработка сайтов artzolin.ru
Основной хук на котором можно отфильтровать посты — pre_get_posts

add_action( 'pre_get_posts', 'include_category_posts' );
function include_category_posts( $query ) {
	if ( $query->is_category() && get_queried_object()->count <= 6 ) {
		$query->set( 'cat', '13' );
	}
}


С помощью get_queried_object()->count вы получаете количество постов из категории и, если их меньше определенного количества, то добавляете в запрос посты из еще одной категории

Так же вы можете написать чуть более сложную логику, посчитать сколько именно вам не хватает постов и добавить недостающие с помощью post__in

$query->set( 'post__in', array( 5, 12, 2, 14, 7 ) );
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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