Dois-je utiliser la boucle sur les pages?

8

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 examinés suivent tous essentiellement le même modèle (exemple 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 n'aura qu'un seul poste qui lui est associé, il est donc inutile de parcourir les messages. 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?

Jamie Ide
la source

Réponses:

5

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

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

Alors oui, c'est une bonne pratique d'utiliser des boucles complètes.

Dave Romsey
la source
9

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

Dans la pratique, je l'ai fait de cette façon dans les thèmes clients sur mesure et je n'ai jamais rencontré de problème, mais cela dépend de quels plugins peuvent être utilisés et s'ils accrochent ou non quelque chose loop_end.

Milo
la source
Selon le guide thématique , des boucles complètes doivent être utilisées, même sur des modèles uniques. "Les boucles complètes doivent être utilisées dans tous les modèles. Il ne suffit pas d'appeler the_post () dans un modèle comme single.php ou page.php." Alors oui, c'est une bonne pratique d'utiliser des boucles complètes.
Dave Romsey
vous devriez probablement ajouter cela comme réponse. c'est nécessaire si vous voulez que votre thème soit accepté et distribué sur WP.com ou org.
Milo
Très bien, merci. Je vais. Je pensais que vous l'aviez couvert avec votre réponse, alors j'ai pensé que je le compléterais juste avec cette friandise. Je n'avais jamais pensé au point d'action loop_end que vous aviez évoqué. Bon appel là-bas.
Dave Romsey
Bonne question, je dénote cet accordig à la documentation, la boucle est un must dans tous les fichiers de modèle, mais je pense que les deux réponses n'expliquent pas POURQUOI. Plus précisément pourquoi il est nécessaire d'exécuter the_post () à l'intérieur de page.php car ce fichier n'est pas censé afficher de message du tout!
GyRo
1
@GyRo une page est un type de message. C'est nécessaire car il configure les données dont les balises de modèle ont besoin pour fonctionner correctement.
Milo