个性化阅读
专注于IT技术分析

为什么在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


如果你想在循环中没有帖子时添加一些” else”语句, 则使用此处的if语句

else {
    echo 'no posts found!';
}
赞(0)
未经允许不得转载:srcmini » 为什么在wordpress循环中有一个if语句

评论 抢沙发

评论前必须登录!