Как получить дату для каждого поста?

11 мар. 2013 г., 13:57:40
Просмотры: 160K
Голосов: 13

Я использую следующий код для получения даты каждого поста:

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>

Однако я получаю дату только для первого поста, почему так происходит?

0
Все ответы на вопрос 2
0
28

Я несколько раз сталкивался с этой же проблемой, и следующие изменения помогали мне в прошлом:

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>
11 мар. 2013 г. 14:03:34
0

Когда на странице отображаются несколько записей, опубликованных В ОДИН И ТОТ ЖЕ ДЕНЬ, функция 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>
11 мар. 2013 г. 14:04:20