<?php if(have_posts()) : while(have_posts()) : the_post(); ?>
虽然它使用while(have_posts())
,但我觉得它没用。假设它没有while条件,第一个if(have_posts())
检查块是否有帖子。如果没有帖子,程序会退出循环。如果有帖子,则执行the_post()
。任何提示将不胜感激。
答案 0 :(得分:1)
循环结构将重复并重复。像
这样的结构while(have_posts())
将重复,直到没有更多帖子。所以它的返回值并不总是一样的。它有助于一次又一次地重复循环的内容,直到没有更多帖子,当have_posts()为while循环返回false值时停止。
答案 1 :(得分:1)
首先,它使用以下方法检查是否有要在该特定页面上显示的帖子:
if(have_posts())
如果有,它将使用以下内容遍历每个帖子:
while(have_posts())
在此之后,它使用以下方式提取帖子的数据:
the_post();
至于它自己的语法,它使用所谓的ternary operation(这里是CMIIW)。
有关更详细的说明,您可以阅读关于wordpress codex的the loop。 以下是该页面的一些解释:
一旦WordPress完成加载博客标题并下降到模板中,我们就会到达我们的帖子循环。 have_posts()只调用$ wp_query-&gt; have_posts(),它检查循环计数器以查看post数组中是否还有任何帖子。并且the_post()调用$ wp_query-&gt; the_post()来推进循环计数器并设置全局$ post变量以及所有全局发布数据。一旦我们耗尽了循环,have_posts()将返回false并且我们已经完成了。