web-dev-qa-db-fra.com

Utilisation de WP_Query - Comment afficher quelque chose SI aucun résultat

J'ai utilisé WP_Query pour interroger et afficher des événements. Dans certains cas, cependant, aucun événement ne doit être affiché et j'aimerais afficher un message amical lorsque cela se produit au lieu de ne rien afficher - mais je ne sais pas comment faire. Si c'était une requête mysql, je sais que je pourrais utiliser if (mysql_num_rows ($ result) == 0) mais je ne pense pas que cela fonctionne avec WP_Query. Y a-t-il autre chose qui fonctionnera?

Merci beaucoup pour toute aide que vous pouvez me donner.
Sarah

4
Sarah

Donc, disons que $query est votre objet WP_Query. C'est à dire.

    $query = new WP_Query($some_query_args );

Ensuite, vous pouvez configurer "la boucle", en

    $query->get_posts();

Ensuite, pour vérifier s’il ya des résultats retournés:

    if ( $query->have_posts() ) :
       //Use a While loop to show the results
    else:
       //No results, let's show a message instead. 
       //This is how WordPress' twentyeleven theme does it, but you can format it how you like:
        ?>

      <article id="post-0" class="post no-results not-found">
          <header class="entry-header"> 
              <h1 class="entry-title"><?php _e( 'Nothing Found', 'twentyeleven' ); ?></h1>
          </header>

          <div class="entry-content">
             <p><?php _e( 'Apologies, but no events were found.', 'twentyeleven' ); ?></p>
         </div>
    </article>
    <?php
    endif;

Gardez à l'esprit la logique, doit être à l'intérieur des balises php, tandis que le balisage HTML doit être à l'extérieur.

Déni de responsabilité: la syntaxe peut ne pas être correcte, je ne l'ai pas testée. Mais consultez index.php des TwentyEleven pour voir ce qu’ils font.

8
Stephen Harris