Функция the_post() в WordPress: использование и особенности

Функция 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.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *