Est-ce que ma boucle est mal faite – WordPress

Publié par Jean-Michel le

La dernière fois que j’ai vérifié, je savais comment écrire une boucle pour afficher tous mes messages ….. Cependant, quand j’ai écrit ceci:

if (have_posts()){
    while (have_posts()): the_post();
    ?>
    <div clas="span6">
        <h3><a href="<?php echo the_permalink(); ?>"><?php echo the_title(); ?></a></h3>
        <p><?php echo the_excerpt(); ?></p>
    </div>
    <?php
    endwhile;
}

J’ai rencontré un problème :

Si j’ai les messages suivants :

Message1, Message2, Message3

Les messages 1 à 2 apparaîtront dans une liste, ce n’est que jusqu’à ce que j’écrive un nouveau message (Post 4) et que je le publie que le message 3 apparaîtra dans cette liste.

Alors qu’est-ce qui ne va pas avec ma boucle?

jamais eu ce problème auparavant.

Remarque : WordPress 3.5 est utilisé.

J’ai vérifié WordPress Docs pour m’assurer que je fais les choses correctement et pour autant que je sache.

Solution n°1 trouvée

Je vois quelques choses qui pourraient être à l’origine de vos problèmes. Tout d’abord, vous avez un ensemble de { }qui ne sont pas nécessaires. Votre ouverture à la boucle devrait être :

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

À la place de:

<?php if (have_posts()){ while (have_posts()): the_post(); ?>

Vous voyez les accolades dans votre boucle ?

Ensuite, comme l’a dit McNab, corrigez simplement votre classe div en ajoutant le « s » et supprimez les echoextracteurs de contenu.

Vous devez également inclure un endif;après votre endwhile;.

Donc, votre boucle complète devrait boucler comme ceci :

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

    <div class="span6">
        <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
        <p><?php the_excerpt(); ?></p>
    </div>

<?php endwhile; endif; ?>

Je pense que cela devrait corriger ton problème.

Solution n°2 trouvée

Vous pouvez l’utiliser comme ci-dessous. Ceci est principalement utilisé dans wordpress.

if (have_posts()) :  // your code if (have_posts()){
   while (have_posts()): the_post();
   ?>
   <div clas="span6">
      <h3><a href="<?php echo the_permalink(); ?>"><?php echo the_title(); ?></a></h3>
      <p><?php echo the_excerpt(); ?></p>
   </div>
   <?php
   endwhile;
endif; //your code here }

J’espère que cela peut fonctionner.

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *