📜  wordpress 循环 - PHP (1)

📅  最后修改于: 2023-12-03 15:21:13.632000             🧑  作者: Mango

WordPress 循环 - PHP

WordPress 是一款基于 PHP 语言开发的自由开源的 CMS 系统,其核心是基于循环方式将数据动态呈现到页面上。因此,熟悉 WordPress 的循环机制对于开发和定制 WordPress 主题、插件具有重要的意义。

在 WordPress 循环中,核心循环函数是 the_loop(),它会根据当前页面要展示的内容类型循环遍历相应的数据,如文章、页面、分类、标签等。在循环中,我们需要使用一些其他的函数来获取和展示数据。

基本循环代码块

下面是 WordPress 基本循环的代码块:

if ( have_posts() ) :
  while ( have_posts() ) : the_post();

    // 内容展示区域

  endwhile;
else :
  // 没有文章时的提示信息
endif;

在上述代码块中,have_posts() 函数用于检查是否有相关的文章数据需要展示;the_post() 函数用于获取一篇文章的相关数据,并将当前文章带入循环中进行处理。

while 循环区间中,程序员可以编写自己想要在页面上展示的内容,如文章标题、摘要、正文、作者、发布日期等信息。

常用循环函数

在 WordPress 循环中,除了 have_posts()the_post() 函数之外,还有一些常用的循环函数可供使用,比如下面这些:

the_title()

用于获取并展示当前文章的标题。

the_content()

用于获取并展示当前文章的正文内容。

the_excerpt()

用于获取并展示当前文章的摘要内容。

the_author()

用于获取并展示当前文章的作者信息。

the_date()

用于获取并展示当前文章的发布日期。

the_category()

用于获取并展示当前文章的分类信息。

the_tags()

用于获取并展示当前文章的标签信息。

get_permalink()

用于获取当前文章的永久链接地址。

还有其他很多有用的循环函数,具体可以参考 WordPress 开发文档

定制循环

有时候我们需要根据不同的需求来展示不同的内容,此时可以通过定制循环来实现。比如,我们可以通过修改 query_posts() 函数中的参数来筛选特定条件的文章或页面,或者使用 WP_Query() 类来定制查询条件。

下面是一个使用 WP_Query() 定制循环的示例代码:

$args = array(
  'post_type'      => 'post',
  'posts_per_page' => 5,
  'category_name'  => 'news'
);
$query = new WP_Query( $args );

if ( $query->have_posts() ) :
  while ( $query->have_posts() ) : $query->the_post();

    // 内容展示区域

  endwhile;
else :
  // 没有文章时的提示信息
endif;

wp_reset_postdata();

在上述代码中,WP_Query() 类可以根据 $args 参数中的查询条件来筛选文章,这里仅查询 5 篇属于 “news” 分类的文章。$query->have_posts() 检查是否有相关的文章数据需要展示,而 $query->the_post() 则是将当前文章带入循环中进行处理。

需要注意的是,当使用 WP_Query() 类时,需要在循环结束后使用 wp_reset_postdata() 函数将查询置回原状态,以免与其他查询有冲突。