循环是 WordPress 通过主题模板文件输出文章的默认机制 。在循环中,WordPress 遍历当前页面获取到的所有文章,然后使用主题中的模版标签将其格式化并输出。
我们可以用 WordPress 循环来做很多事情,例如:
- 在网站首页显示多个文章模块
- 在文章详情页面显示内容和评论
- 在侧边栏中显示最新文章或热门文章
- 显示指定文章类型或分类方法中的数据
- 根据指定的条件获取数据并显示在文章模块中
循环细节
循环的基本使用方法如下。
<?php
if ( have_posts() ) :
while ( have_posts() ) : the_post();
// 显示文章内容
endwhile;
endif;
?>
上面的代码首先判断是否有循环,如果有,则逐个显示循环中的内容。
- have_posts() 函数检查当前页面是否有文章。
- 只要括号中的条件逻辑为真,
while
循环就会继一直执行下去。
使用文章循环
循环应放在 index.php
或其他用来显示文章的模板中。因为我们不想在每个文章中都显示网站页头,所以循环代码应该放在 get_header()
之后。
<?php
get_header();
// 循环代码从这里开始
if ( have_posts() ) :
while ( have_posts() ) : the_post();
// 显示文章内容
endwhile;
endif;
?>
如以上代码所示,循环必须以 if
和 while
语句开头,以 endwhile
和 endif
语句结束。用以显示文章内容的模版标签必须在循环开始语句和结束语句中间。
如果当前页面没有文章,我们可以显示一个 404 错误信息,这个信息必须放在 endwhile
和 endif
语句之间 ,如下所示。
这是一个非常简单的 index.php
文章。
<?php
get_header();
if ( have_posts() ) :
while ( have_posts() ) : the_post();
the_content();
endwhile;
else :
_e( '抱歉,未找到您需要的文章。', 'textdomain' );
endif;
get_sidebar();
get_footer();
?>
可以在文章循环中显示什么
我们可以在循环中使用模版标签显示各种文章内容、文章自定义字段,下面是一些常用的模版标签:
next_post_link()
:显示在当前文章之后 发布的文章的链接previous_post_link()
– 显示在当前文章之前发布的文章的链接the_category()