web-dev-qa-db-fra.com

the_date () ne fonctionne pas

J'utilise wordpress 3.2 et j'ai rédigé un message de requête comme ceci:

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

Ensuite, j'essaie de faire écho à la date de cet article que je me suis posé comme ça.

<?php echo the_date(); ?>

Cela me donne le titre de l'article, l'extrait et le permalien, mais pas de date. A ton avis, quel est le problème. Je suis sûr que c'est quelque chose d'assez embarrassant.

Voici le code dans mon fichier de modèle pour la page vidéo:

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

Ici, j'essaie de mettre la requête en boucle:

<?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'a pas fonctionné, mais the_title () et d'autres fonctions ont fonctionné. À propos, cela a changé ma requête en the_post (), ce qui n'est pas ce que je veux. Je veux interroger la dernière vidéo comme je l'ai fait au dessus de la boucle.

En passant, j'ai utilisé la fonction the_date un peu plus tôt dans la page et cela a fonctionné. Est-ce que cela pourrait être le problème? Voici c'est avant le code que j'ai eu un problème avec.

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

Voir ceci remarque spéciale sur l’utilisation de `the_date '

REMARQUE SPÉCIALE: lorsque plusieurs pages sont publiées sur une page sous SAME DAY, the_date () affiche uniquement la date de la première publication (c'est-à-dire, la première instance de the_date ()). Pour répéter la date des publications publiées le même jour, vous devez utiliser les balises de modèle the_time () ou get_the_date () (depuis la version 3.0) avec une chaîne de format spécifique à la date. Utilisez pour ajouter la date définie dans l'interface d'administration.

  1. Votre using query_posts qui bousille les globals
  2. Votre écho d'une fonction qui imprime déjà dans le navigateur

    • En fait, vous le faites pour toutes vos balises de modèle.
    • Remplacez echo the_date(); par: echo get_the_date('F j, Y');
    • Supprimez l'écho de vos balises de modèle déjà imprimées sur le navigateur ou utilisez les fonctions alternatives qui renvoient la valeur.
  3. Utilisez un nouveau WP_Query ou get_posts au lieu de query_posts

  4. Lire le Codex. Il vous explique comment utiliser toutes ces fonctions et est très utile :)

49
Chris_O

the_date() imprime la date uniquement si la même date était non imprimée auparavant.
Non, ce n'est pas compatible avec d'autres fonctions similaires. Mais c’est comment cela a fonctionné dans l’ancêtre de WordPress b2/cafelog , et la compatibilité descendante dépasse toujours la logique… :)

Pour imprimer la date, utilisez toujours get_the_date()

<?php echo get_the_date(); ?>

ou

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

Je pense que cela est censé être exécuté dans la condition while( have_posts() ):

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

Vous devez initialiser la boucle pour que certaines fonctions fonctionnent. Toutes ces fonctions indiquent, sur leur page de codex, qu'elles ne fonctionneront pas correctement en dehors de la boucle.

0
mor7ifer