web-dev-qa-db-ja.com

The Loopをページに使用する必要がありますか?

私は最初の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();
?>

これは良い習慣ですか?欠点はありますか?

8
Jamie Ide

テーマガイド によると、単一のテンプレートであっても、完全なループを使うべきです。

全ループはすべてのテンプレートで使用する必要があります。 single.phppage.phpのようなテンプレートでthe_post()を呼び出すだけでは不十分です。

そのため、フルループを使用することをお勧めします。

5
Dave Romsey

最後のhave_posts()の後にthe_post()を呼び出さないと loop_end アクションが呼び出されないので、そのアクションにフックされたものは何も実行されません。

実際には、私はオーダーメイドのクライアントテーマでそれをやっていて問題に遭遇したことは一度もありませんが、それはどんなプラグインが使われるかそしてそれらがloop_endに何かをフックするかどうかによって異なります。

9
Milo