WordPress как на ладони
Очень Удобный и Быстрый Хостинг для сайтов на WordPress. Пользуюсь сам и вам рекомендую!

have_posts() WP 1.5

Проверяет есть ли у текущего запроса WP результаты для вывода, т.е. есть ли в наличии посты, которые можно вывести для текущей страницы. Условный тег.

Ищем WP-разработчика! Фулл-тайм, удаленка, хорошая зарплата, соц. пакет. Подробности.
Компания Boosta.

В конце Цикла WordPress, функция автоматически возвращает метку, что запрос снова полный и готов для вывода, т.е. автоматически использует функцию: rewind_posts().

1 раз — 0.000001 сек (скорость света) | 50000 раз — 0.02 сек (скорость света) | PHP 7.2.5, WP 4.9.6

Хуков нет.

Возвращает

true|false. falsе, если результатов для вывода нет и true, если есть что выводить.

Использование

if( have_posts() ){
	// ...
}

Примеры

#1. Определим есть ли записи для вывода

Следующий пример можно использовать, чтобы определить есть ли посты для вывода и если есть запустить цикл while и вывести их:

<?php
if ( have_posts() ){
	while ( have_posts() ){
		the_post();
		// код вывода
	}
} else {
	echo wpautop( 'Постов для вывода не найдено.' );
}
?>

#2 Вызов have_posts() внутри Цикла WordPress

Вызов have_posts() внутри Цикла WordPress, означает бесконечный цикл. Смотрите пример:

while( have_posts() ){
	the_post();

	// Вывод поста
	if ( have_posts() ){
		// Если это последний пост, цикл начнется заново
		// Делаем что-нибудь, если это не не последний пост
	}
}

#2.1 Проверка есть ли еще посты в цикле

Если нужно проверить есть ли еще посты в текущем цикле, можно использовать следующую функцию. Функция будет возвращать:

  • true - есть еще посты в запросе.
  • false - выведен последний пост.

Использовать функцию more_posts() нужно будет вместо have_posts() из примера 2.

function more_posts() {
  global $wp_query;
  return $wp_query->current_post + 1 < $wp_query->post_count;
}

Заметки

  • Global. WP_Query. $wp_query WordPress Query object.

Список изменений

С версии 1.5.0 Введена.

Код have_posts() WP 5.8.2

function have_posts() {
	global $wp_query;
	return $wp_query->have_posts();
}

query (запрос)

Условные теги (все)

Запросы

Записи: посты, страницы, ...

17 комментов
Полезные 1 Вопросы 2 Все
    Войти