Affichage aléatoire des dates de parution des articles (Créer un compte)

  • Statut : non résolu
15 sujets de 1 à 15 (sur un total de 16)
  • Auteur
    Messages
  • #492769
    Ralf
    Membre
    Initié WordPress
    14 contributions

    Bonjour,

    Ma configuration WP actuelle
    – Version de WordPress : 3.1
    – Version de PHP/MySQL : 5.0
    – Thème utilisé : original
    – Extensions en place : plein
    – Nom de l’hebergeur : le pb se produit aussi en local
    – Adresse du site : http://www.raphael-bigot.info/petits_cahiers/

    Problème(s) rencontré(s) :

    Bonjour,

    J’ai un problème assez étrange.
    J’ai voulu afficher sur la home d’un site les trois derniers articles de chaque catégorie, (enfin juste leur titre), ainsi que leur date de parution, via le code

    <?php the_date();?>

    .

    Or celle-ci s’affiche de façon totalement aléatoire. Pour un article, elle ne va pas apparaitre, jusqu’à ce que je rajoute un nouvel article, qui va « parfois » faire apparaitre certaines dates auparavant invisibles.

    Je sais pas si je suis très clair, mais vous verrez sur la page d’accueil que toutes ces dates n’apparaissent pas (et contrairement aux apparences, ça n’a rien à voir avec la taille d’un titre trop long. Là c’est juste une coïncidence qu’à l’heure où j’écris, seuls les plus longs titres ont perdu leur date de parution).

    Voici le code que j’avais utilisé :

    <ul id="rubriquage_home">
    <li><h2><a href="/petits_cahiers/category/entrees/">Entrées</a></h2>
    <a href="/petits_cahiers/category/entrees/"><img src="wp-content/themes/petits_cahiers/images/visuel_home_entrees.png" width="231" height="163" alt="Entrées" /></a>
    <ul><h3>Dernières recettes :</h3>
    <?php if(have_posts()) : ?><?php query_posts("showposts=3&category_name=entrees"); ?><?php while(have_posts()) : the_post(); ?><!-- check si nouveaux articles, et les affiche -->
    <div class="post"><!-- div englobant tous les éléments de l'article (titre, texte, posmetadatas...) -->
    <li><a href="<?php the_permalink(); ?> » title= »<?php the_title(); ?>« ><?php the_title(); ?></a><!-- titre de l'article --> – <span><?php the_date();?></span></li>
    </div>
    <?php endwhile; ?>
    <?php endif; ?>
    </ul>
    </li>

    <li><h2><a href="/petits_cahiers/category/plats/">Plats</a></h2>
    <a href="/petits_cahiers/category/plats/"><img src="wp-content/themes/petits_cahiers/images/visuel_home_plats.png" width="232" height="160" alt="Plats" /></a>
    <ul><h3>Dernières recettes :</h3>
    <?php if(have_posts()) : ?><?php query_posts("showposts=3&category_name=plats"); ?><?php while(have_posts()) : the_post(); ?><!-- check si nouveaux articles, et les affiche -->
    <div class="post"><!-- div englobant tous les éléments de l'article (titre, texte, posmetadatas...) -->
    <li><a href="<?php the_permalink(); ?> » title= »<?php the_title(); ?>« ><?php the_title(); ?></a><!-- titre de l'article --><span> – <?php the_date();?></span></li>
    </div>
    <?php endwhile; ?>
    <?php endif; ?>
    </ul>
    </li>

    <li><h2><a href="/petits_cahiers/category/desserts/">Desserts</a></h2>
    <a href="/petits_cahiers/category/desserts/"><img src="wp-content/themes/petits_cahiers/images/visuel_home_desserts.jpg" width="231" height="159" alt="Désserts" /></a>
    <ul><h3>Dernières recettes :</h3>
    <?php if(have_posts()) : ?><?php query_posts("showposts=3&category_name=desserts"); ?><?php while(have_posts()) : the_post(); ?><!-- check si nouveaux articles, et les affiche -->
    <div class="post"><!-- div englobant tous les éléments de l'article (titre, texte, posmetadatas...) -->
    <li><a href="<?php the_permalink(); ?> » title= »<?php the_title(); ?>« ><?php the_title(); ?></a><!-- titre de l'article --><span> – <?php the_date();?></span></li>
    </div>
    <?php endwhile; ?>
    <?php endif; ?>
    </ul>
    </li>

    <li><h2><a href="/petits_cahiers/category/collations/">Collations</a></h2>
    <a href="/petits_cahiers/category/collations/"><img src="wp-content/themes/petits_cahiers/images/visuel_home_collations.jpg" width="232" height="163" alt="Collations" /></a>
    <ul><h3>Dernières recettes :</h3>
    <?php if(have_posts()) : ?><?php query_posts("showposts=3&category_name=collations"); ?><?php while(have_posts()) : the_post(); ?><!-- check si nouveaux articles, et les affiche -->
    <div class="post"><!-- div englobant tous les éléments de l'article (titre, texte, posmetadatas...) -->
    <li><a href="<?php the_permalink(); ?> » title= »<?php the_title(); ?>« ><?php the_title(); ?></a><!-- titre de l'article --><span> – <?php the_date();?></span></li>
    </div>
    <?php endwhile; ?>
    <?php endif; ?>
    </ul>
    </li>
    </ul>

    (4 fois le même code, donc. D’où mon incompréhension pourquoi certaines dates s’affichent, d’autres non, et le coup d’après oui, mais pas en même temps…)

    Auriez vous une explication sur ce phénomène paranormal ?

    Un grand merci d’avance !

    #762096
    abds69
    Participant
    Padawan WordPress
    62 contributions

    Hola, on dirait que tu utilises 3 boucles sur une seule page !!??? Je peux peut etre me tromper mais pour chaque boucle supp tu dois plutot utiliser du new_query…Faut voir ce qu’en pense les autres ici.

    #762097
    Ralf
    Membre
    Initié WordPress
    14 contributions
    abds69 wrote:
    Hola, on dirait que tu utilises 3 boucles sur une seule page !!??? Je peux peut etre me tromper mais pour chaque boucle supp tu dois plutot utiliser du new_query…Faut voir ce qu’en pense les autres ici.

    4 en fait… 😳

    C’est mal ? (je sentais qu’il y avait qquechose qui coinçait à ce niveau là…)

    En fait ça m’a posé un légèr problème au niveau de l’affichage des articles : s’il n’y en avait pas dans une catégorie, il en affichait aucun dans les catégories suivantes (que celles ci contiennent des articles ou non). Mais je pensais pas que ça poserait problème avec les dates…

    #762098
    abds69
    Participant
    Padawan WordPress
    62 contributions

    Expliques nous en francais a quoi servent les 4 loops et après quelqu’un te conseillera la meilleure technique de multiple loop !!
    Sinon regardes ici : http://codex.wordpress.org/The_Loop
    A+

    #762099
    Ralf
    Membre
    Initié WordPress
    14 contributions

    Je l’ai indiqué dans mon post, ainsi qu’un lien vers la dite page.

    J’ai voulu afficher sur la home d’un site les trois derniers articles de chaque catégorie, (enfin juste leur titre), ainsi que leur date de parution

    #762100
    Lumiere de Lune
    Participant
    Maître WordPress
    20531 contributions

    il faut qu’à la fin de chaque boucle tu mettes rewind_query()

    #762101
    abds69
    Participant
    Padawan WordPress
    62 contributions

    Non Lumiere de lune , plutôt wp_reset_query(); à la fin de chaque boucle je pense.

    #762102
    Ralf
    Membre
    Initié WordPress
    14 contributions

    Je teste les deux 🙂 (et j’édite mon post pour dire ce qui a marché)

    Edit : bon et bien choux blancs.
    J’ai inséré entre chaque ligne et , ma page ne marchait plus. J’ai fait de même avec , la page marche, mais aucun changement au niveau des dates…

    #762104
    Ralf
    Membre
    Initié WordPress
    14 contributions

    Petit up.

    Personne n’a de solution ?

    #762105
    abds69
    Participant
    Padawan WordPress
    62 contributions

    Mets reset query apres le endif de chaque boucle. De plus pour chaque boucle inverse query et if (have posts..comme dans cet exemple :
    <?php
    query_posts(‘posts_per_page=5’);
    if (have_posts()) : while (have_posts()) : the_post();
    ?><a href=" »>
    <?php
    endwhile; endif;
    wp_reset_query();
    ?>

    #762106
    Ralf
    Membre
    Initié WordPress
    14 contributions

    Mais le problème concerne uniquement les dates de parution des articles (dont le code n’est pas présent dans ton exemple).
    Et d’ailleurs, je ne pense finalement pas que le fait d’avoir mis plusieurs boucles soit la cause du problème, puisque je les ai toutes supprimées sauf une pour faire un essai, et le problème reste le même : sur les trois titres d’articles, seuls deux ont une date de parution associée…

    Le code :


    <div class="post">
    <a href=" » title= » »></a>
    </div>

    (j’ai supprimé tout le reste pour localiser le problème, si ça peut aider).

    Et au final, ça me donne ça :
    Titre de l’article – date de parution
    Titre de l’article – RIEN
    Titre de l’article – date de parution

    #762107
    abds69
    Participant
    Padawan WordPress
    62 contributions

    OK cela sera plus clair. Bon déjà bouges have post après query comme dans mon exemple.
    Remplaces the_date par ça et dis nous. A+

    #762108
    Ralf
    Membre
    Initié WordPress
    14 contributions

    Encore merci. Ça n’avance pas, mais c’est tjs sympa de m’aider 🙂

    J’ai donc remplacé comme tu as dit par le code suivant :




    <div class="post">
    <a href=" » title= » »></a>
    </div>

    Cette fois, les trois articles réagissent pareil, sauf qu’ils affichent la même date, qui n’a aucun rapport avec la date de parution de l’article (« 03 mars 2011 », va comprendre pourquoi cette date et pas une autre), et ce même si je crée un article aujourd’hui.

    #762103
    abds69
    Participant
    Padawan WordPress
    62 contributions

    Si si au contraire on a trouvé !!!
    Quand je vais sur ta homepage, ceux qui ne s’affichent pas sont ceux qui ont la même date , c’est pour ça qu’il faut que tu utilises php the_time plutôt php the_date.
    Voici l’article avec le bug relaté : http://codex.wordpress.org/Function_Reference/the_date

    SPECIAL NOTE: When there are multiple posts on a page published under the SAME DAY, the_date() only displays the date for the first post (that is, the first instance of the_date()). To repeat the date for posts published under the same day, you should use the Template Tag the_time() or get_the_date() (since 3.0) with a date-specific format string.
    Use to add the date set in the admin interface.

    A+

    #762109
    Ralf
    Membre
    Initié WordPress
    14 contributions

    Ça marche !

    Effectivement, en remplaçant simplement par , les dates rebelles apparaissent enfin !

    Du coup, je me demande à quoi sert la première formule…

    En tous cas, un énorme merci !

15 sujets de 1 à 15 (sur un total de 16)
  • Vous devez être connecté pour répondre à ce sujet.