the_date () non funziona


20

Sto usando WordPress 3.2 e ho fatto un post di query come questo:

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

Quindi provo a ripetere la data di questo post che ho interrogato in questo modo.

<?php echo the_date(); ?>

Mi dà il titolo del post, l'estratto e il permalink, ma nessuna data. Quale pensi che sia il problema. Sono sicuro che è qualcosa di abbastanza imbarazzante.

Ecco il codice nel mio file modello per la pagina video:

    <?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>

Qui provo a mettere la query in un ciclo:

<?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 () non ha funzionato ma the_title () e altre funzioni hanno funzionato. A proposito, questo ha cambiato la mia query in the_post () che non è quello che voglio. Voglio interrogare l'ultimo video come ho fatto sopra il ciclo.

A proposito, ho usato la funzione data_ in precedenza nella pagina e ha funzionato. Potrebbe essere questo il problema? Eccolo prima del codice con cui ho avuto un problema.

<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>

Risposte:


51

Vedi questa nota speciale sull'uso di `the_date '

NOTA SPECIALE: quando su una pagina sono pubblicati più post in SAME DAY, the_date () visualizza solo la data del primo post (ovvero la prima istanza di the_date ()). Per ripetere la data per i post pubblicati nello stesso giorno, è necessario utilizzare il tag modello the_time () o get_the_date () (dal 3.0) con una stringa di formato specifica della data. Utilizzare per aggiungere la data impostata nell'interfaccia di amministrazione.

  1. Stai usando query_postsquali viti rovinano i globi
  2. Stai facendo eco a una funzione che già stampa sul browser

    • Lo stai effettivamente facendo per tutti i tag del modello.
    • Passare echo the_date();a:echo get_the_date('F j, Y');
    • Rimuovere l'eco dai tag del modello che già stampano sul browser o utilizzare le funzioni alternative che restituiscono il valore.
  3. Usa un nuovo WP_Queryo get_postsinvece diquery_posts

  4. Leggi il codice. Ti dice come usare tutte queste funzioni ed è molto utile :)


1
get_the_date () risolto il mio problema ma ora il mio sidebar.php get_the_date () è rotto.
Zachdyer,

1
Un'altra vittima diquery_posts
Chris_O,

Va bene ora funziona ma ho dovuto usare i tag echo. Ecco perché non ha funzionato nella mia sidebar.php.
Zachdyer,

17

the_date()stampa la data solo se la stessa data non era stata stampata prima .
No, non è coerente con altre funzioni simili. Ma è così che ha funzionato nell'antenato WordPress b2 / cafelog e la compatibilità all'indietro vince sempre sulla logica ... :)

Per stampare la data utilizzare sempre get_the_date()

<?php echo get_the_date(); ?>

o

<?php echo mysql2date( get_option( 'date_format' ), $post->post_date); ?>

NOOOOOOOOOOOOOOOOOOOO. Ora la mia barra laterale get_the_date è rotta. Cosa succede lì?
Zachdyer,

1
Vedi la risposta di Cris_O e non utilizzarlaquery_posts() . :)
fuxia

Usando query_posts che sta rompendo i tuoi globi. Vedi la mia risposta qui sotto.
Chris_O,

0

Penso che sia pensato per essere eseguito all'interno del while( have_posts() )condizionale:

while ( have_posts() ) : the_post();
    echo '<li>';
    the_date();
    echo '</li>';
endwhile;

Come posso solo dire la data del post? Questo è tutto ciò che voglio fare? Ho interrogato solo un post.
Zachdyer,

0

È necessario inizializzare il loop per far funzionare determinate funzioni. Tutte queste funzioni elencano, nella loro pagina del codice, che non funzioneranno correttamente al di fuori del ciclo.


No che non funziona Ho pubblicato il codice di quello che ho fatto nel post.
Zachdyer,

-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' );
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.