Como obter a data para cada postagem?

10

Estou usando o seguinte para obter a data de cada postagem:

while (have_posts()) : the_post();
//some html
<li class="icon-date"><?php the_date('Y-m-d');?></li>
<li class="icon-time"><?php the_date('H:i:s');?></li>

No entanto, estou recebendo apenas a data do primeiro post, por que isso?

user1692333
fonte

Respostas:

21

Encontrei o mesmo problema várias vezes, depois das alterações que funcionaram para mim no passado:

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>

Em vez de the_date(), use get_the_date().
A única coisa a ter em atenção é que os valores retornados por get_the_date()devem ser repetidos.

Olhando para a página do Codex, há uma nota especial sobre the_date().

Quando há várias postagens em uma página publicada sob o mesmo dia, the_date () exibe apenas a data da primeira postagem (ou seja, a primeira instância da the_date ()). Para repetir a data das postagens publicadas no mesmo dia, você deve usar a tag de modelo the_time () ou get_the_date () (desde 3.0) com uma sequência de formato de data específica.

Além disso, se você deseja controlar o formato get_the_date()retornado em Admin, pode usar get_option('date_format'). Dessa forma, se você alterar o formato da data no Admin, essas alterações também serão feitas no seu código.

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>
Mike Madern
fonte
0

Quando há várias postagens em uma página publicada sob o mesmo dia, the_date () exibe apenas a data da primeira postagem (ou seja, a primeira instância da the_date ()) . Para repetir a data das postagens publicadas no mesmo dia, você deve usar a tag de modelo the_time () ou get_the_date () (desde 3.0) com uma sequência de formato de data específica . Use para adicionar a data definida na interface do administrador.

Para mais informações, visite esta página .

Portanto, de acordo com a referência do codex wordpress, o código correto será o seguinte:

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>
Vinod Dalvi
fonte