Как получить дату для каждого поста?
Я использую следующий код для получения даты каждого поста:
while (have_posts()) : the_post();
//некоторый html
<li class="icon-date"><?php the_date('Y-m-d');?></li>
<li class="icon-time"><?php the_date('H:i:s');?></li>
Однако я получаю дату только для первого поста, почему так происходит?
Я несколько раз сталкивался с этой же проблемой, и следующие изменения помогали мне в прошлом:
while (have_posts()) : the_post();
//некоторый html
<li class="icon-date"><?php echo get_the_date( 'Y-m-d' ); ?></li>
<li class="icon-time"><?php the_time( 'H:i:s' ); ?></li>
Вместо the_date() используйте get_the_date().
Единственное, о чем нужно помнить, это то, что значения, возвращаемые get_the_date(), необходимо выводить с помощью echo.
Если посмотреть на страницу Codex, там есть специальное примечание о the_date().
Когда на странице есть несколько записей, опубликованных в ОДИН И ТОТ ЖЕ ДЕНЬ, функция the_date() отображает дату только для первой записи (то есть для первого вызова the_date()). Чтобы повторно выводить дату для записей, опубликованных в тот же день, следует использовать функцию the_time() или get_the_date() (начиная с версии 3.0) с указанием формата даты.
Также, если вы хотите контролировать формат, в котором возвращается get_the_date() в админке, можно использовать get_option('date_format'). Таким образом, если вы измените формат даты в админке, эти изменения автоматически применятся и в вашем коде.
while (have_posts()) : the_post();
//некоторый html
<li class="icon-date"><?php echo get_the_date( get_option('date_format') ); ?></li>
<li class="icon-time"><?php the_time( 'H:i:s' ); ?></li>
Когда на странице отображаются несколько записей, опубликованных В ОДИН И ТОТ ЖЕ ДЕНЬ, функция the_date() отображает дату только для первой записи (то есть для первого вызова the_date()). Чтобы повторно выводить дату для записей, опубликованных в тот же день, следует использовать шаблонный тег the_time() или get_the_date() (начиная с версии 3.0) с форматом даты. Используйте , чтобы добавить дату, установленную в интерфейсе администратора.
Для получения дополнительной информации посетите эту страницу.
Согласно справочнику WordPress Codex, правильный код будет выглядеть следующим образом:
while (have_posts()) : the_post();
//некоторый html
<li class="icon-date"><?php echo get_the_date('Y-m-d');?></li>
<li class="icon-time"><?php the_time('H:i:s');?></li>