have_posts() WP 1.5.0

Перевіряє чи є у поточного запиту WP результати висновку, тобто. чи є пости, які можна вивести для поточної сторінки. Умовний тег.

В кінці rewind_posts() .

1 раз – 0.000001 сек
(швидкість світла) | 50000 разів – 0.02 сек
(швидкість світла) |
PHP 7.2.5, WP 4.9.6

Хуків немає.

Повертає

true|false. false, якщо результатів висновку немає і true, якщо є що виводити.

Використання

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

Приклади

0

#1 Визначимо чи є записи для виведення

Наступний приклад можна використовувати, щоб визначити, чи є пости для виведення і якщо є запустити цикл while і вивести їх:

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

#2 Виклик have_posts() всередині Цикл WordPress

Виклик have_posts() всередині циклу WordPress означає нескінченний цикл. Дивіться приклад:

while( have_posts() ){
	the_post();

	// Висновок посту
	if ( have_posts() ){
		// Якщо це останній пост, цикл розпочнеться заново
		// Робимо щось, якщо це не останній пост
	}
}
0

#3 Перевірка чи є ще пости у циклі

Якщо потрібно перевірити, чи є ще пости в поточному циклі, можна використовувати наступну функцію.

Використовувати функцію more_posts() потрібно замість have_posts() .

function more_posts() {
  global $wp_query;

  return $wp_query->current_post + 1 < $wp_query->post_count;
}

Функція повертатиме:

  • true – є ще пости у запиті.
  • false – виведено останню посаду.

нотатки

  • Global. WP_Query. $wp_query WordPress Query object.

список змін

З версії 1.5.0Введено.

Код have_posts() WP 6.0.2

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

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *