为什么在wordpress循环中有一个if语句

wordpress循环看起来像这样(来自docs)

< ?php if ( have_posts() ) { while ( have_posts() ) { the_post(); // // Post Content here // } // end while } // end if ?>

在执行while(have_posts())之前检查(Have_posts())对我来说似乎很奇怪。毕竟, 在while循环的第一次迭代中进行了完全相同的检查。
我能想到的if语句唯一有用的情况是执行else语句以显示一些条件文本, 指示不存在任何帖子。
是否有理由包括此if语句, 但实际上并没有使用? (我问是因为它对我来说看起来像是冗余代码, 但是文档指定我应该使用它)
#1在我的示例中, if语句似乎是多余的, 但是总的来说, 不建议省略if语句。
if语句通常用于:
  • 输出类似未找到帖子的内容, 以表明相关类别未分配任何文章。
  • 决定是否在文章前后输出周围的html(如ul)。
有关更多信息, 请访问:https://wordpress.stackexchange.com/questions/117219/why-should-i-put-ifhave-posts-is-whilehave-posts-not-enough
如果添加了新的钩子怎么办?
不使用if语句的另一个可能的问题是, 如果wordpress团队曾经决定添加一个新的钩子, 该钩子在第一个$ wp_query-> have_posts()调用中触发, 那么它将在错误的时间触发。如果这导致了意外行为, 则可能是由于你未正确遵循规范而造成的。
其他开发人员希望看到wordpress循环的特定结构
我想其他开发人员希望看到整个wordpress循环。因此, 让他们搜索不存在的if语句可能不是一个好主意。
#2【为什么在wordpress循环中有一个if语句】如果你想在循环中没有帖子时添加一些” else” 语句, 则使用此处的if语句
else { echo 'no posts found!'; }

    推荐阅读