Почему the_post() не отображает пост?

99
08 мая 2021, 07:30

Переходя на ссылку поста не получается получить пост из the_post код следующий

<?php if(have_posts()) {?>
     <?php the_post(); ?>
<?php }?>

При это have_posts возвращает 1. Пробывал WP_Query($args) результат тот же самый

Answer 1

Функция the_post() ничего не выводит сама по себе и ничего не возвращает. Грубо говоря, она просто устанавливает глобальную переменную $post, чтобы другие функции знали, какой именно пост считается активным в данный момент в общем цикле (Loop).

Насколько я понял, вас интересуют скорее функции вывода: the_title(), the_content(), the_category(). Первая выводит заголовок активного поста, вторая — его содержимое, третья — список рубрик.

Важно понимать, что ваш пост выводится не сам по себе, а внутри цикла (Loop). Даже когда вы находитесь на внутренней странице отдельного поста, вы всё равно проходите через цикл (просто в нём будет один элемент — текущий пост).

Вот как это работает:

<?php 
// Проверяем, есть ли вообще какие-нибудь посты в главной выборке (main query)
if ( have_posts() ): 
    // Обрабатываем по очереди каждый пост из выборки, пока не обойдём все
    // (всегда в цикле, потому что выборка может вызываться с доп. параметрами и содержать несколько объектов, а не один)
    while ( have_posts() ):
         // Сообщаем системе, что текущий пост — активный
         // и что в этом проходе по циклу все данные нужно брать именно из него
         the_post();
         // А вот теперь можно начинать выводить данные
         // с помощью стандартных «циклических» функций 
         // (которые и предназначены только для работы внутри цикла)
         // Выводим заголовок *активного* поста
         the_title();
         // Выводим контент *активного* поста
         the_content();
         // Выводим список рубрик *активного* поста
         the_category();
    endwhile; 
endif; 
?>
READ ALSO
Динамические view в Ларавел

Динамические view в Ларавел

Подскажите как организовать логикуСайт на Ларавел 5

105
Скрипт не видит раннее подключенные модули

Скрипт не видит раннее подключенные модули

У меня есть файл configphp, где идет установка некоторых строковых констант (define), которые содержат в себе абсолютные пути к директориям файла,...

95
Получить индекс заголовка столбца

Получить индекс заголовка столбца

Всем доброго времени суток! Делаю одно задание и столкнулся с небольшой трудностьюУ меня есть некий csv файл с названиями столбцов - (За период;Учетный...

110