web-dev-qa-db-fra.com

Dois-je utiliser la boucle sur les pages?

J'écris mon premier thème WordPress et j'ai une question sur l'utilisation de The Loop dans les modèles de page. Les modèles de page que j'ai consultés suivent essentiellement le même modèle (exemple tiré de Twenty Twelve):

<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( 'content', 'page' ); ?>
<?php comments_template( '', true ); ?>
<?php endwhile; // end of the loop. ?>

Mais une page ne sera associée qu’à un seul article, il semble donc inutile de les parcourir. Mon modèle de page est plus lisible et semble bien fonctionner:

<?php
the_post();
the_title('<h1>', '</h1>');
the_content();
?>

Est-ce une bonne pratique? Y a-t-il des inconvénients?

8
Jamie Ide

Selon le Guide thématique , des boucles complètes doivent être utilisées, même sur des modèles uniques.

Des boucles complètes doivent être utilisées dans tous les modèles. Il ne suffit pas d'appeler the_post() dans un modèle tel que single.php ou page.php.

Alors oui, il est recommandé d’utiliser des boucles complètes.

5
Dave Romsey

Le seul problème potentiel (modification: fonctionnel) que je vois est que l'action loop_end ne sera pas appelée si vous n'appelez pas have_posts() après la dernière the_post(), de sorte que tout ce qui est lié à cette action ne s'exécutera pas.

En pratique, je l'ai fait de cette manière dans des thèmes client sur mesure et je n'ai jamais rencontré de problème, mais cela dépend des plugins pouvant être utilisés et du fait qu'ils accrochent ou non quelque chose sur loop_end.

9
Milo