建站教程

建站教程

Products

当前位置:首页 > 建站教程 >

WordPress 循环解释

GG网络技术分享 2025-03-18 16:07 0


WordPress 循环很大。 它超大。 这很关键。 没有它,您的 WordPress 网站将无法运行。

这并不是说它很大。 事实上,它应该尽可能的精简、紧凑和快速。 但它是 WordPress 的主要组成部分,嗯,WordPress。 没有它,您将无法查询数据库并显示您的内容,无论是您的博客存档、“关于”页面还是您的最新帖子。

没有 WordPress 循环,什么都不起作用。

所以,现在我们已经确定了循环的重要性,如果您以前没有遇到过它,您可能想知道它是什么。

在这篇文章中,我将回答这个问题。 我会告诉你什么是循环,它是如何工作的以及它应该去哪里。 我还将为您提供一些自定义 WordPress 循环并使其适合您的提示。

让我们首先确定 WordPress 循环的作用和去向。

继续阅读,或使用以下链接跳转:

  • 什么是 WordPress 循环,我在哪里可以找到它?
  • WordPress 循环在哪里? 在模板文件中找到它
  • WordPress 循环剖析
  • 自定义 WordPress 循环

什么是 WordPress 循环,我在哪里可以找到它?

WordPress 循环是几行(或有时多行)访问数据库、获取任何相关内容然后显示它的代码。 该代码将包括用于访问数据库的 PHP 以及用于输出找到的内容的 PHP 和 HTML 组合。

它被称为循环的原因是因为它循环——它不断重复,直到没有其他东西可以显示。 查看静态页面时,这意味着它只会循环一次,但在类别存档或您的主博客页面上,它将继续循环和输出内容,直到没有任何内容可显示。

WordPress 循环获取和输出的内容取决于以下几点:

  • 正在查看什么样的内容
  • 您对 WordPress 循环所做的任何自定义(稍后会更多)
  • 用于显示数据库中项目的功能(例如帖子标题、内容和任何元数据)
  • 用于包装内容的 HTML。

您会在主题的每个模板文件中找到 WordPress 循环。 在这篇文章中,我们将检查当前默认主题 216 中的 WordPress 循环。 如果您还没有访问该主题的权限,请下载它并在您喜欢的代码编辑器中打开它。 在我们完成这篇文章的过程中,我将参考该主题中的不同文件和代码块,如果您可以查看并跟进,它会有所帮助。

在这篇文章中,我将拆开 26 个默认主题中的循环。
在这篇文章中,我将拆开 26 个默认主题中的循环。

WordPress 循环在哪里? 在模板文件中找到它

您会在每个主题模板文件中找到 WordPress 循环,或者您可能会找到一个从模板部分中提取它的函数。

模板部分是包含在整个主题中重复使用的代码的文件,其中 WordPress 循环就是一个示例。 因此,不是在每个模板文件中重复循环,而是每个文件都拉入模板部分并运行相同的代码。

您可以在主题中使用多个包含的文件,例如,您可能只需要一个版本的 WordPress Loop 用于所有存档页面,而另一个版本用于所有单个页面。

让我们看一下 26 主题以了解这一切。

这是主题的文件结构:

二十六主题的文件结构

有一堆模板文件:

  • 404.php
  • 存档.php
  • 页脚.php
  • 图像.php
  • 索引.php
  • 页面.php
  • 搜索.php
  • 单.php

主题在主文件夹中也有一些模板部分:

  • 评论.php
  • 页脚.php
  • 头文件.php
  • 搜索表单.php
  • 侧边栏内容-bottom.php
  • 边栏.php

而且它里面有更多的模板部分 模板部分 文件夹。 这些中的每一个都将在主题中的其他地方调用。 其他文件如 函数.php样式.css 有自己的具体作用。

让我们看一个 WordPress Loop 的例子。 首先,打开 页面.php 文件。

这是它的完整代码:

那么这其中的哪一部分是循环呢?

好。 在寻找循环时,您需要注意一件事,那就是这一行:

这就是启动 WordPress 循环的原因。 这一行结束了循环:

所以这意味着这个循环 页面.php 模板文件正在使用这些代码行运行:

但这不包括显示 WordPress 循环内容的模板标签和 HTML。 相反,这一切都包含在 内容页面.php 文件。 它用这一行来做到这一点:

get_template_part() 函数获取模板部分的内容并在模板文件的这一点运行它们,就像代码被编码到这个文件中一样。

在我们继续详细查看该模板部分的内容之前,请花一些时间打开主题中的其他一些模板文件。 它们中的每一个都引用了相关的模板部分,但有一些例外:

  • 404.php 不包括 WordPress 循环,因为如果用户登陆 404 页面,则不会有任何数据可供获取和输出。
  • 存档.php 索引.php 使用帖子格式分类法获取相关帖子格式的模板部分。 这意味着您可以为每种帖子格式编写一个模板部分,其中包含输出不同格式帖子所需的代码。 如果这些文件不存在,它将回退到 内容.php.
  • 图像.php 不获取模板部分——而是在模板文件中编码循环。
  • 页面.php 获取 内容页面.php 模板部分。
  • 搜索.php 获取 内容搜索.php 模板部分。
  • 单.php 获取 内容-single.php 模板部分。

WordPress 循环剖析

让我们继续仔细看看 WordPress 循环。 正如我们一直在使用的那样 页面.php,让我们检查一下 内容页面.php 文件。 在代码编辑器中打开它。

注意:如果您正在编写主题,您可以选择为循环使用模板部分或将其直接编码到模板文件中。 使用术语,板块部分将使您的主题更有效,但您可能会发现您使用的主题只是将循环编码到模板文件中。 两者都会起作用。

这是代码 内容页面.php

让我们一次一步地浏览这一节的每个部分。

打开元素并显示标题

首先,文件打开一个 article 元素并在 a 中输出帖子标题 header 元素:

article 元素的 ID 使用 the_ID() 用于获取帖子 ID 的模板标签,以及使用 post_class() 模板标签。 这为它提供了一个包含帖子 ID、帖子类型、分类法等的类。

一种 header 然后打开元素,其中包括使用 the_title() 模板标签。 这具有用于在帖子标题之前和之后的标记的参数 - 所以它包含在 h1 元素与 entry-title 班级。

header 然后关闭元素。

显示元数据

下一步是显示任何元数据。 在这个主题中,没有太多内容——只有帖子缩略图。 这是使用 twentysixteen_post_thumbnail() 功能,这是特定于这个主题。 如果您想了解此功能的工作原理,请查看主题的 函数.php 文件——在当前版本中,这个函数是从第 398 行定义的。

在某些主题中,此处会输出更多元数据,例如任何自定义字段、作者信息等。 如果您想将其添加到您自己的主题中,请查看我们关于使用元数据的教程。

输出帖子内容

现在 WordPress 循环将输出帖子的内容,包括以下几行:

让我们看看这是做什么的。

  1. 首先,它打开一个带有 entry-content 类的 div。
  2. 然后它使用 the_content() 模板标签来获取数据库的内容并显示它。
  3. 它使用 wp_link_pages() 模板标签显示分页帖子的早期和后期帖子的链接。 在此模板部分中,这不会做任何事情,因为页面没有分页,但在单个帖子中,它将显示指向上一个和下一个帖子的链接。
  4. 它关闭 entry-content 分区。

在某些模板文件或模板部分中,不会输出内容,而是会输出摘录。 如果你有一个循环 存档.php 您可能会选择使用的文件 the_excerpt() 代替 the_content() 改为输出摘录。

完成事情

26 主题有一个链接,具有相关用户角色的登录用户可以单击该链接来编辑帖子:

这使用 edit_post_link() 带有一些参数的函数,这些参数准确地定义了输出的内容。

在某些主题中,您会发现这里输出了更多元数据。

最后, article 包含所有内容的元素已关闭。

自定义 WordPress 循环

这就是标准的 WordPress 循环。 这将根据正在查看的页面自动从数据库中获取适当的内容,并将其输出。 它非常高效,因为相同的代码用于显示许多不同类型的内容,从帖子到页面和其他帖子类型,以及帖子、类别、作者等的存档。

如果您不希望 WordPress 循环以标准方式为每种类型的内容工作,您可以对其进行修改。 或者,如果您想在页面上输出完全不同的循环(或额外的循环),您可以这样做。 让我们快速看一下如何做到这一点。

修改主循环

在考虑编写自己的循环之前,请尝试修改主循环。 这更有效,因为您仍在使用在每个页面上运行的主查询。

为此,您编写附加到 pre_get_posts 钩。 在此函数中,您使用条件标记来定义何时修改查询,并使用一些代码来告诉 WordPress 究竟如何修改它。

让我们看一个例子。 主博客页面仅包含 邮政 帖子类型:它不会显示您的任何自定义帖子类型。 如果您想修改它以在您的主页上显示自定义帖子类型,您可以。

假设您的自定义帖子类型注册为 我的帖子类型. 这是您要添加到主题的功能 函数.php 文件将这些添加到主博客页面:

这会检查我们是否在主博客页面上 is_home(),我们不在管理屏幕中 !is_admin() 并且主查询正在运行 $query->is_main_query(). 如果所有这些都是这种情况,那么它定义了在循环中输出哪两种帖子类型 $query->set('post_type', array( 'post', 'myposttype' ) ).

编写新循环

如果您想在主循环无法获取的页面上显示内容,或者您​​想在一个页面上运行多个循环,那么您可以编写自己的新查询和循环来执行此操作。

有三种方法可以做到这一点:

  • 使用 get_posts() 获取和输出帖子的函数,使用您自己的帖子数量参数、分类术语或您想要关注的任何其他内容。
  • 使用 get_pages() 功能对页面执行相同的操作。
  • 使用 WP_Query 类来获取和输出你想要的任何东西。 这是一个非常灵活和有用的类,您可以在主题中的任何位置使用它。

有关使用这些方法的指导,请参阅我们的编写自定义查询的指南。

了解 WordPress 循环将帮助您创建更好的 WordPress 主题

希望您现在对 WordPress 循环及其工作原理有了更好的了解。

了解 WordPress 循环的组成将帮助您更了解您在网站上使用的主题中的代码。 如果您要编写自己的主题,这也很重要:理解 WordPress Loop 并编写自己的主题比从其他地方复制一个要好得多。 这将使您的主题完全按照您的需要去做,而不会浪费代码,从而提高效率。

它是任何主题的关键部分,现在您了解了它,这将大大提高您的主题构建技能。

标签:

标签: WordPress op

提交需求或反馈

Demand feedback