在WordPress主题开发中,我们可以使用single.php
来显示特定的单个帖子。
为此目的,通常的做法是:
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<?php the_content();?>
<?php endwhile; ?>
<?php endif; ?>
为什么我需要循环来显示单个帖子?任何人都可以给出一些正当的理由吗?
答案 0 :(得分:3)
WordPress Loop实例化了the_title()
,the_content()
和others等功能。
换句话说,你的帖子在该循环中已加载,如果你在一个帖子上,循环就会消失一次。虽然有一个循环可能很奇怪,但它实际上非常有用。
WordPress使用template hierarchy,这是一种选择为给定帖子/页面加载哪个模板的方法。在single.php
中,循环将运行一次。但是,如果您没有single.php
文件,WordPress将使用index.php
代替相同的帖子。
为了保持一致性,有一个适用于任意数量帖子的循环是有帮助的。另外,在你index.php
中,你需要一个帖子的案例和多个帖子的另一个案例,并且保持一致的模板方法将是困难的。
答案 1 :(得分:2)
这是多年来杀了我的东西,我找到了答案: 不,您不需要在单个页面中使用LOOP,只需调用the_post()并且您需要所有数据
.... BUT ....
如果你不使用循环(while(have_posts())....)没有调用钩子“loop_end”,如果插件/进程在这个钩子上有任何动作,它将无法工作。因此,出于安全考虑,您应该使用循环。
另外,人们问我是否需要在循环之前检查是否存在:if(have_posts())?
<?
if( have_posts() ):
while( have_posts() ):
the_post();
.....
endwhile;
endif
?>
不,你不需要检查
.... BUT ....
检查允许您在循环之前包含标题/标题,如果循环为空则不包含标题/标题。