我需要使用页面上的循环吗?

时间:2013-02-17 作者:Jamie Ide

我正在写我的第一个WordPress主题,对页面模板中循环的使用有疑问。我所查看的页面模板基本上都遵循相同的模式(例如,从2012年开始):

<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( \'content\', \'page\' ); ?>
<?php comments_template( \'\', true ); ?>
<?php endwhile; // end of the loop. ?>
但是一个页面只会有一个与之关联的帖子,因此遍历这些帖子似乎是不必要的。我的页面模板更具可读性,似乎工作正常:

<?php
the_post();
the_title(\'<h1>\', \'</h1>\');
the_content();
?>
这是一种好的做法吗?有什么缺点吗?

2 个回复
最合适的回答,由SO网友:Dave Romsey 整理而成

根据Theme Guide, 即使在单个模板上,也应使用完整循环。

所有模板中都必须使用完整循环。只是打电话而已the_post() 在模板中,如single.phppage.php 这还不够。

因此,使用完整循环是一种最佳实践。

SO网友:Milo

我看到的唯一潜在(编辑:功能)问题是loop_end 如果你不打电话,行动就不会被呼叫have_posts() 最后一次之后the_post(), 因此,任何与该操作相关的操作都不会运行。

实际上,我在定制客户端主题中就是这样做的,从来没有遇到过问题,但这取决于可能使用的插件以及它们是否挂接了任何东西loop_end.

结束

相关推荐

Multiple loops are not reset

我可爱的同事们再次设计了一款让我很难在Wordpress中找到它的东西。令人惊讶的是,这是我以前做过多次的事情;在一个页面上有最近的帖子和页面内容。主页是一个页面。在页面内容上方有三篇最近的帖子。对于帖子,我需要在<!--more--> 标签这个循环似乎工作得很好。稍后,在模板中,我循环查看实际页面内容。无论我做什么,它总是给我不可靠的结果。这是我的索引的精简版本。php/页。php模板(它们恰好相同):<div id=\"content\"> <?php g