have_posts()
Перевіряє чи є у поточного запиту WP результати висновку, тобто. чи є пости, які можна вивести для поточної сторінки. Умовний тег.
В кінці rewind_posts() .
1 раз – 0.000001 сек
(швидкість світла) | 50000 разів – 0.02 сек
(швидкість світла) |
PHP 7.2.5, WP 4.9.6
(швидкість світла) | 50000 разів – 0.02 сек
(швидкість світла) |
PHP 7.2.5, WP 4.9.6
Хуків немає.
Повертає
true|false
. false, якщо результатів висновку немає і 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() ){ // Якщо це останній пост, цикл розпочнеться заново // Робимо щось, якщо це не останній пост } }
#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() have posts WP 6.0.2
function have_posts() { global $wp_query; return $wp_query->have_posts(); }