the_post()
Устанавливает следующий пост в глобальную переменную global $post
. Также устанавливает все данные поста с помощью setup_postdata().
В глобальную переменную global $post
будет установлен следующий пост из цикла, см WP_Query::next_post(). Если цикл только начался, то туда будет установлен первый пост из цикла.
Далее, на базе установленной глобальной переменной $post, будет установлены все важные данные поста - см. setup_postdata( $post ).
Также, включает свойство WP_Query::in_the_loop = true
. Это говорим о том, что цикл запущен - это нужно, чтобы функция in_the_loop() работала правильно.
Эту функцию обязательно нужно использовать в связке с функцией have_posts(), которая проверяет можно ли вообще вызывать эту функцию.
while ( have_posts() ) { the_post(); the_title(); }
Эта функци работает только с глобальным объектом global $wp_query
. Поэтому, если вы делаете кастомный запрос, то вам нужно вызвать метод рабочего объекта с таким же названием, вместо этой функции:
$query = new WP_Query( $args ); while ( $query->have_posts() ) { $query->the_post(); the_title(); } wp_reset_postdata(); // ВАЖНО вернуть global $post обратно
Это обёртка для метода WP_Query::the_post().
Хуков нет.
Возвращает
null
. Ничего не возвращает.
Использование
while ( have_posts() ) { the_post(); // ... }
Примеры
#1 Использование функции в цикле WordPress:
while( have_posts() ){ the_post(); echo '<h2>'; the_title(); echo '</h2>'; the_content(); }
#2 Использование не в цикле
На отдельных страницах типа is_single() не обязательно использовать цикл if( have_posts() ){ while ( have_posts() ){ the_post(); ...
. На таких страницах переменная $post отвечает за один пост, поэтому часть цикла можно отбросить:
<?php the_post(); have_posts(); ?> <h1><?php the_title() ?></h1> <?php the_content(); ?>
#3 The available functions to access the post within the loop are:
next_post_link() | Выводит ссылку на следующий по дате пост из указанной таксономии (по умолчанию category). |
previous_post_link() | Выводит ссылку на предыдущий по дате пост (запись) из указанной таксономии (по умолчанию category). |
the_category() | Выводит ссылки на рубрики, к которым принадлежит пост в виде HTML li списка или в произвольном формате. |
the_author() | Выводит имя автора поста. |
the_content() | Выводит контент текущего поста (записи). |
the_excerpt() | Выводит "отрывок" (цитату) поста или первые 55 слов контента, со вставкой в конец [...] . |
the_ID() | Выводит ID текущего поста. Используется внутри Цикла WordPress. |
the_meta() | Выводит произвольные поля записи (метаданные из wp_postmeta). Поля выводятся в списке <li>. Скрытые поля игнорируются. |
the_shortlink() | Выводит короткую ссылку текущей записи, например: /?p=1234. |
the_tags() | Выводит ссылки на метки, которые относятся к посту. |
the_title() | Выводит на экран заголовок записи. Принято использовать внутри цикла. |
the_time() | Выводит на экран время (дату) публикации текущей записи в Цикле WordPress. |
Including the following conditional tags:
is_home() | Проверяет показывается ли страница с последними постами, обычно это главная страница сайта. Условный тэг. |
is_admin() | Проверяет находится ли пользователь в админ-панели сайта (консоль или любая другая страница админки). Условный тег. |
is_single() | Проверяет находимся ли мы на странице записи (любого типа). Записи с типом attachment и page не проверяются. Условный тег. |
is_page() | Проверяет отображается ли страница "постоянной страницы". Можно указать ID, ярлык или заголовок страницы для проверки. Условный тег. |
is_page_template() | Проверяет используется ли файл шаблона для отображения текущей страницы. Можно указать название файла. |
is_category() | Проверяет показывается ли страница категории или нет. Условный тэг. |
is_tag() | Проверят отображается ли страница архива по меткам. Условный тег. |
is_author() | Проверяет отображается ли страница с постами автора. Можно указать конкретного автора. Условный тег. |
is_search() | Срабатывает, когда отображается страница результатов поиска. Условный тег. |
is_404() | Проверяет показывается ли страница ошибки 404 (HTTP 404: страница не найдена). Условный тег. |
has_excerpt() | Проверяет есть ли у текущего поста отрывок (цитата, короткое описание). Условный тег. |
Заметки
- Global. WP_Query. $wp_query WordPress Query object.
Список изменений
С версии 1.5.0 | Введена. |
Код the_post() the post WP 6.2
function the_post() { global $wp_query; if ( ! isset( $wp_query ) ) { return; } $wp_query->the_post(); }