the_date() no funciona

18 may 2012, 00:07:54
Vistas: 35.9K
Votos: 24

Estoy usando WordPress 3.2 y realicé una consulta de entradas así:

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

Luego intento mostrar la fecha de esta entrada consultada así:

<?php echo the_date(); ?>

Me muestra el título de la entrada, el extracto y el enlace permanente pero no la fecha. ¿Cuál creen que es el problema? Estoy seguro de que es algo bastante simple.

Aquí está el código en mi archivo de plantilla para la página de video:

    <?php query_posts("posts_per_page=1post=type&page=post_parent=10");?>
    <h2>Video Reciente</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">Ver Ahora</a></p>

Aquí intento poner la consulta en un bucle:

<?php query_posts("posts_per_page=1post=type&page=post_parent=10");?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<h2>Video Reciente</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">Ver Ahora</a></p>
<?php endwhile; else: ?>
<p><?php _e('Lo siento, ninguna entrada coincide con tus criterios.'); ?></p>
<?php endif; ?>

the_date() no funcionó pero the_title() y otras funciones sí. Por cierto, esto cambió mi consulta a the_post() que no es lo que quiero. Quiero consultar el último video como lo hice arriba.

Por cierto, usé la función the_date() antes en la página y funcionó. ¿Podría ser ese el problema? Aquí está antes del código que me dio problemas:

<div id="col75" class="firstcol">
    <iframe id="video" src="http://www.youtube.com/embed/videoseries?list=<?php print get_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>
0
Todas las respuestas a la pregunta 5
3
65

Consulta esta nota especial sobre el uso de `the_date`

NOTA ESPECIAL: Cuando hay múltiples publicaciones en una página publicadas el MISMO DÍA, the_date() solo muestra la fecha de la primera publicación (es decir, la primera instancia de the_date()). Para repetir la fecha en publicaciones publicadas el mismo día, deberías usar la etiqueta de plantilla the_time() o get_the_date() (desde la versión 3.0) con una cadena de formato específica para fechas. Usa para añadir la fecha configurada en la interfaz de administración.

  1. Estás usando query_posts lo cual altera los globales
  2. Estás haciendo echo de una función que ya imprime en el navegador

    • De hecho, lo estás haciendo con todas tus etiquetas de plantilla.
    • Cambia echo the_date(); por: echo get_the_date('F j, Y');
    • Elimina el echo de tus etiquetas de plantilla que ya imprimen en el navegador o usa las funciones alternativas que devuelven el valor.
  3. Usa una nueva WP_Query o get_posts en lugar de query_posts

  4. Lee el Codex. Te explica cómo usar todas estas funciones y es de gran ayuda :)

18 may 2012 00:47:16
Comentarios

get_the_date() resolvió mi problema pero ahora mi sidebar.php get_the_date() está fallando.

zachdyer zachdyer
18 may 2012 01:06:53

Otra víctima de query_posts

Chris_O Chris_O
18 may 2012 01:07:55

Vale, ahora está funcionando pero tuve que usar las etiquetas echo. Por eso no funcionaba en mi sidebar.php.

zachdyer zachdyer
18 may 2012 01:22:13
3
21

the_date() imprime la fecha solo si la misma fecha no se había impreso antes.
No, esto no es consistente con otras funciones similares. Pero así funcionaba en el ancestro de WordPress, b2/cafelog, y la compatibilidad con versiones anteriores siempre prevalece sobre la lógica... :)

Para imprimir la fecha siempre usa get_the_date()

<?php echo get_the_date(); ?>

o

<?php echo mysql2date( get_option( 'date_format' ), $post->post_date); ?>
18 may 2012 00:31:29
Comentarios

NOOOOOOOOOOOOOOOOOOOO. Ahora mi barra lateral get_the_date está rota. ¿Qué pasó ahí?

zachdyer zachdyer
18 may 2012 01:00:22

Mira la respuesta de Cris_O y no uses query_posts(). :)

fuxia fuxia
18 may 2012 01:04:18

Estás usando query_posts lo cual está rompiendo tus globales. Mira mi respuesta abajo.

Chris_O Chris_O
18 may 2012 01:04:36
1

Creo que esto está pensado para ejecutarse dentro del condicional while( have_posts() ):

while ( have_posts() ) : the_post();
    echo '<li>';
    the_date();
    echo '</li>';
endwhile;
18 may 2012 00:09:39
Comentarios

¿Cómo puedo mostrar solamente la fecha de la publicación? Eso es todo lo que quiero hacer. Solo consulté una publicación.

zachdyer zachdyer
18 may 2012 00:12:51
1

Necesitas inicializar el bucle (loop) para que ciertas funciones funcionen correctamente. Todas estas funciones enumeran, en su página del Codex, que no funcionarán adecuadamente fuera del bucle.

18 may 2012 00:21:36
Comentarios

No, eso no funciona, publiqué el código de lo que hice en la publicación.

zachdyer zachdyer
18 may 2012 00:27:44
0
// Esto no mostrará la fecha en todos los casos
the_date( 'F d, Y' );

// Esto sí mostrará la fecha en todos los casos  
the_time( 'F d, Y' );
24 jun 2016 12:54:19