web-dev-qa-db-fra.com

Avons-nous encore besoin d'inclure un "if (have_posts ())" dans les modèles?

J'inclus cette logique dans mon modèle tout le temps

if ( have_posts() ):
 //show content
else:
 //show content not found
endif;

Mais récemment, j'ai commencé à douter de sa nécessité, WordPress se tournera vers 404.php quand aucun message ne sera trouvé, il semble inutile d'ajouter cette logique dans les modèles normaux, else ne sera jamais déclenché, n'est-ce pas?

6
Edward

Quand je regarde WP::handle_404() , je pense que le modèle 404.php ne sera pas chargé, même s'il n'y a pas de messages, si:

  • Nous sommes sur la page d'accueil
  • C'est une recherche
  • C'est un terme de taxonomie qui existe, mais n'a pas de messages attachés (et ce n'est pas paginé)
  • C'est un auteur qui existe, qui n'a pas encore écrit de message (et ce n'est pas paginé)

Donc, dans ces fichiers modèles, have_posts() peut être utile.

7
Jan Fabry

Non, dans la plupart des cas, ce n'est pas nécessaire.

if ( have_posts() ) ne serait utile que sur le fichier index.php, si vous n'avez pas de modèle 404.php.

Et même dans ce cas, vous pourriez utiliser is_404 () à la place.

2
scribu