Как получить дату для каждого сообщения?
2 ответ
- голосов
-
- 2013-03-11
Я сталкивался с одной и той же проблемой несколько раз,в прошлом у меня работали следующие изменения:
while (have_posts ()):the_post (); //немного html & lt; li class="icon-date" > & lt;?phpechoget_the_date ('Y-m-d');? > & lt;/li > & lt; li class="icon-time" > & lt;?phpthe_time ('H:i: s');? > & lt;/li >
Вместо
the_date ()
используйтеget_the_date ()
.
Единственное,о чем следует помнить,это то,что значения,возвращаемые функциейget_the_date ()
,должны быть отображены эхом.Глядя на страницу Кодекса ,можно увидеть особое примечание о
<цитата>the_date () код>.
Если на странице,опубликованной в рамках ОДНОГО ДНЯ,есть несколько сообщений,the_date () отображает дату только для первого сообщения (то есть первого экземпляраthe_date ()). Чтобы повторить дату для сообщений,опубликованных в один и тот же день,следует использовать тег шаблонаthe_time () илиget_the_date () (начиная с версии 3.0) со строкой формата для конкретной даты.
Кроме того,если вы хотите управлять форматом,в котором
get_the_date ()
возвращается в Admin,вы можете использоватьget_option ('date_format')
. Таким образом,если вы измените формат даты в админке,эти изменения будут внесены и в ваш код.while (have_posts ()):the_post (); //немного html & lt; li class="icon-date" > & lt;?phpechoget_the_date (get_option ('date_format'));? > & lt;/li > & lt; li class="icon-time" > & lt;?phpthe_time ('H:i: s');? > & lt;/li >
I ran into the same problem several times, following changes worked for me in the past:
while (have_posts()) : the_post(); //some 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>
Instead of
the_date()
, useget_the_date()
.
The only thing to be aware of, is that values returned byget_the_date()
have to be echoed.Looking at the Codex page there is a special note about
the_date()
.When there are multiple posts on a page published under the SAME DAY, the_date() only displays the date for the first post (that is, the first instance of the_date()). To repeat the date for posts published under the same day, you should use the Template Tag the_time() or get_the_date() (since 3.0) with a date-specific format string.
Also, If you want to control the format in wich
get_the_date()
is returned in Admin, you can useget_option('date_format')
. This way if you change the date format in the Admin, these changes will me made in your code too.while (have_posts()) : the_post(); //some 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>
-
- 2013-03-11
Если на странице,опубликованной под ОДНИМ ДНЕМ,есть несколько сообщений,the_date () отображает только дату для первого сообщения (то есть первого экземпляраthe_date ()) . Чтобы повторить дату для сообщений,опубликованных в один и тот же день,вы должны использовать тег шаблона the_time () или get_the_date () (начиная с версии 3.0) с строка формата для конкретной даты . Используйте для добавления даты,установленной в интерфейсе администратора.
Для получения дополнительной информации посетите эту страницу .
Итак,согласно справочнику кодекса wordpress,правильный код будет следующим:
while (have_posts()) : the_post(); //some 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>
When there are multiple posts on a page published under the SAME DAY, the_date() only displays the date for the first post (that is, the first instance of the_date()). To repeat the date for posts published under the same day, you should use the Template Tag the_time() or get_the_date() (since 3.0) with a date-specific format string. Use to add the date set in the admin interface.
For more information visit this page.
So according to the wordpress codex reference the correct code will be as following :
while (have_posts()) : the_post(); //some 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>
Я использую следующее,чтобы получить дату каждого сообщения:
Однако я получаю только дату первого сообщения,почему это так?