caldary
@caldary

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

Друзья, всем привет. Помогите пожалуйста с решением задачи.
Имеется блок для вывода 6-ти постов, его структура едина для любой категории. Но в категории может быть всего 3 поста, а может быть и 17. Ограничить количество при выводе - не проблема. Проблема в другом:
как в случае, если в указанной категории всего 3 поста, остальные 3 ячейки занять свежими постами из всех категорий, исключая те самые 3, уже показанные? Разумеется, при этом сохранив максимум в 6 постов на весь этот нестандартный цикл.
Спасибо!
  • Вопрос задан
  • 43 просмотра
Пригласить эксперта
Ответы на вопрос 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 ) );
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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