WordPress как на ладони
rgbcode is looking for WordPress developers. Очень Удобный и Быстрый Хостинг для сайтов на WordPress. Пользуюсь сам и вам рекомендую!

the_post()WP 1.5.0

Устанавливает следующий пост в глобальную переменную 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().

1 раз — 0.000023 сек (очень быстро) | 50000 раз — 0.03 сек (скорость света) | PHP 7.1.2, WP 4.7.3

Хуков нет.

Возвращает

null. Ничего не возвращает.

Использование

while ( have_posts() ) {
	the_post();

	// ...
}

Примеры

1

#1 Использование не в цикле

На отдельных страницах типа is_single() не обязательно использовать цикл if( have_posts() ){ while ( have_posts() ){ the_post(); ... . На таких страницах переменная $post отвечает за один пост, поэтому часть цикла можно отбросить:

<?php the_post(); have_posts(); ?>

<h1><?php the_title() ?></h1>

<?php the_content(); ?>
1

#2 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() Проверяет есть ли у текущего поста отрывок (цитата, короткое описание). Условный тег.

0

#3 Использование функции в цикле WordPress:

while( have_posts() ){
	the_post();

	echo '<h2>';
	the_title();
	echo '</h2>';
	the_content();
}

Заметки

  • Global. WP_Query. $wp_query WordPress Query object.

Список изменений

С версии 1.5.0 Введена.

Код the_post() WP 6.4.3

function the_post() {
	global $wp_query;

	if ( ! isset( $wp_query ) ) {
		return;
	}

	$wp_query->the_post();
}
2 комментария
    Войти