为什么我需要在single.php中进行wp循环

在WordPress主题开发中, 我们可以使用single.php来显示特定的单个帖子。
为此, 通常的做法是:

< ?php if (have_posts()) : ?> < ?php while (have_posts()) : the_post(); ?> < ?php the_content(); ?> < ?php endwhile; ?> < ?php endif; ?>

为什么需要循环显示单个帖子?任何人都可以给出正当理由吗?
#1WordPress循环实例化了一些功能, 例如the_title(), the_content()和其他功能。
换句话说, 你的帖子被加载到该循环中, 并且如果你在单个帖子中, 则循环将循环一次。尽管有一个循环可能很奇怪, 但实际上它非常有用。
【为什么我需要在single.php中进行wp循环】WordPress使用模板层次结构, 这是一种选择为给定帖子/页面加载哪个模板的方法。在你的single.php中, 循环将运行一次。但是, 如果你没有单个.php文件, 则WordPress将在同一帖子中使用index.php。
为了保持一致性, 有一个适用于任意数量帖子的循环都是有帮助的。否则, 在index.php中, 你将需要为一个帖子编写一个案例, 为多个帖子编写另一个案例, 并且保持一致的模板方法将很困难。
#2这是使我丧命多年的东西, 但我找到了答案:不, 你不需要在单个页面中使用LOOP, 只需调用the_post()即可获得所有数据
.... BUT ....

如果你不使用循环(while(have_posts())..), 则不会调用钩子” loop_end” , 并且如果插件/进程对该钩子有任何操作, 则它将不起作用。因此, 出于安全原因, 你应该使用循环。
另外, 人们问我是否需要在循环之前检查是否存在:if(have_posts())?
< ? if( have_posts() ): while( have_posts() ): the_post(); ..... endwhile; endif ?>

不, 你不需要检查
.... BUT ....

通过检查, 你可以在循环之前包含标题/标题, 如果循环为空, 则不包含它们。

    推荐阅读