Функция the_post() в WordPress
Функция the_post() в WordPress устанавливает следующую запись в глобальную переменную $post. Она также настраивает все данные записи с помощью функции setup_postdata().
Как работает the_post()
Глобальная переменная $post становится следующей записью из цикла. Если цикл только начинается, тогда в $post будет установлена первая запись.
На основе установленной глобальной переменной $post будут настроены все важные данные о записи. Это важно, так как это позволяет использовать функции, которые требуют данных о текущей записи.
Также функция включает свойство $WP_Query::in_the_loop, которое указывает, что цикл выполняется. Это необходимо для корректной р��боты функции in_the_loop().
Использование с функцией have_posts()
Эту функцию следует использовать вместе с функцией have_posts(), которая проверяет, можно ли использовать the_post().
Пример использования:
if ( have_posts() ) {
while ( have_posts() ) {
the_post();
the_title();
}
}
Работа с пользовательским запросом
Функция the_post() работает только с глобальным объектом $wp_query. Если вы делаете свой пользовательский запрос, необходимо использовать метод работающего объекта с тем же именем. Вот пример:
$query = new WP_Query( $args );
while ( $query->have_posts() ) {
$query->the_post();
the_title(); // выводит заголовок записи
}
wp_reset_postdata(); // Важно! Возвращаем глобальную переменную $post обратно
Возврат
Функция the_post() ничего не возвращает (null).
Основное использование
Пример основного использования the_post():
if ( have_posts() ) {
while ( have_posts() ) {
the_post();
?>
Примеры
Пример 1: Использование функции в цикле WordPress
while ( have_posts() ) {
the_post();
echo '';
the_title();
echo '
';
the_content();
}
Пример 2: Использование функции вне цикла WordPress
На отдельных страницах записи, таких как is_single(), have_posts() можно не использовать. Здесь переменная $post отвечает только за одну запись, поэтому часть цикла можно опустить:
Заметки
- Глобальный объект
WP_Query— это объект запроса WordPress, который позволяет получать данные о записях.
Изменения
Функция the_post() была введена в версии 1.5.0.
Код функции the_post()
Вот код функции the_post():
function the_post() {
global $wp_query;
if ( ! isset( $wp_query ) ) {
return;
}
$wp_query->the_post();
}
Связанные функции
get_the_author()get_the_content()the_content()the_title()wp_reset_postdata()
Эти функции помогут вам работать с записями и их данными, облегчая создание вашего контента в WordPress.