the_date () não está funcionando

17

Estou usando o wordpress 3.2 e fiz um post de consulta como este:

<?php query_posts("posts_per_page=1post=type&page=post_parent=10");?>

Então eu tento ecoar a data deste post que eu questionei assim.

<?php echo the_date(); ?>

Isso me dá o título do post e o trecho e o permalink, mas sem data. O que você acha que é o problema. Tenho certeza de que é algo bastante embaraçoso.

Aqui está o código no meu arquivo de modelo para a página de vídeo:

    <?php query_posts("posts_per_page=1post=type&page=post_parent=10");?>
    <h2>Recent Video</h2>
    <h3 class="date"><?php echo the_date(); ?></h3>
    <p><strong><?php echo the_title(); ?></strong><?php echo the_excerpt(); ?></p>
    <p><a href="<?php echo the_permalink(); ?>" class="more2">Watch Now</a></p>

Aqui eu tento colocar a consulta em um loop:

<?php query_posts("posts_per_page=1post=type&page=post_parent=10");?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<h2>Recent Video</h2>
<h3 class="date"><?php echo the_date(); ?></h3>
<p><strong><?php echo the_title(); ?></strong><?php echo the_excerpt(); ?></p>
<p><a href="<?php echo the_permalink(); ?>" class="more2">Watch Now</a></p>
<?php endwhile; else: ?>
<p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
<?php endif; ?>

the_date () não funcionou, mas o the_title () e outras funções funcionaram. A propósito, isso mudou minha consulta para the_post () que não é o que eu estou querendo. Quero consultar o vídeo mais recente, como fiz acima do loop.

A propósito, usei a função the_date no início da página e funcionou. Esse poderia ser o problema? Aqui está ele antes do código com o qual eu tive um problema.

    

<div id="col75" class="firstcol">
    <iframe id="video" src="http://www.youtube.com/embed/videoseries?list=<?phpprintget_post_meta($post->ID,"playlist_id", true); ?>" width='560' height='350' frameborder="0"></iframe>
    <div id="col25">
        <h2><?php echo get_post_meta($post->ID,"speaker", true); ?></h2>
        <h3 class="date"><?php echo the_date(); ?></h3>
    
por zachdyer 17.05.2012 / 23:07

5 respostas

46

Veja esta nota especial sobre o uso de 'the_date'

  

NOTA ESPECIAL: quando há várias postagens em uma página publicada sob   o MESMO DIA, the_date () exibe apenas a data da primeira postagem   (isto é, a primeira instância de the_date ()). Para repetir a data para   postagens publicadas no mesmo dia, você deve usar o Template Tag   the_time () ou get_the_date () (desde 3.0) com um formato específico de data   corda. Use para adicionar o   data definida na interface administrativa.

  1. Você está usando query_posts , que estraga os globals
  2. O seu eco de uma função que já imprime no navegador

    • Você está fazendo isso para todas as suas tags de modelo.
    • Alterar echo the_date(); para: echo get_the_date('F j, Y');
    • Remova o eco de suas tags de modelo que já foram impressas no navegador ou use as funções alternativas que retornam o valor.
  3. Use um novo WP_Query ou get_posts em vez de query_posts

  4. Leia o Codex. Ele diz a você como usar todas essas funções e é muito útil:)

por Chris_O 17.05.2012 / 23:47
14

the_date() imprime a data apenas se a mesma data não foi impressa antes .
Não, isso não é consistente com outras funções semelhantes. Mas isso é como funcionou no ancestral do WordPress b2 / cafelog , e a compatibilidade com versões anteriores sempre supera a lógica …:)

Para imprimir a data, use sempre get_the_date()

<?php echo get_the_date(); ?>

ou

<?php echo mysql2date( get_option( 'date_format' ), $post->post_date); ?>
    
por fuxia 17.05.2012 / 23:31
0

Acho que isso deve ser executado dentro da while( have_posts() ) condicional:

while ( have_posts() ) : the_post();
    echo '<li>';
    the_date();
    echo '</li>';
endwhile;
    
por Kristian 17.05.2012 / 23:09
0

Você precisa inicializar o loop para que certas funções funcionem. Todas essas funções listam, em sua página de codex, que elas não funcionarão adequadamente fora do loop.

    
por mor7ifer 17.05.2012 / 23:21
-1
// This won't show date in all cases
the_date( 'F d, Y' );

// This will show date in all cases
the_time( 'F d, Y' );
    
por avi 24.06.2016 / 11:54