私は最初のWordPressテーマを書いているのですが、ページテンプレートでのThe Loopの使用について質問があります。私が見たすべてのページテンプレートは基本的に同じパターンに従っています(Twenty Twelveの例)。
<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( 'content', 'page' ); ?>
<?php comments_template( '', true ); ?>
<?php endwhile; // end of the loop. ?>
しかし、ページに関連付けられている投稿は1つだけなので、投稿を繰り返し処理する必要はありません。私のページテンプレートは読みやすく、うまく機能しているようです。
<?php
the_post();
the_title('<h1>', '</h1>');
the_content();
?>
これは良い習慣ですか?欠点はありますか?
テーマガイド によると、単一のテンプレートであっても、完全なループを使うべきです。
全ループはすべてのテンプレートで使用する必要があります。
single.php
やpage.php
のようなテンプレートでthe_post()
を呼び出すだけでは不十分です。
そのため、フルループを使用することをお勧めします。
最後のhave_posts()
の後にthe_post()
を呼び出さないと loop_end
アクションが呼び出されないので、そのアクションにフックされたものは何も実行されません。
実際には、私はオーダーメイドのクライアントテーマでそれをやっていて問題に遭遇したことは一度もありませんが、それはどんなプラグインが使われるかそしてそれらがloop_end
に何かをフックするかどうかによって異なります。