Products
GG网络技术分享 2025-03-18 16:07 0
WordPress 循环很大。 它超大。 这很关键。 没有它,您的 WordPress 网站将无法运行。
这并不是说它很大。 事实上,它应该尽可能的精简、紧凑和快速。 但它是 WordPress 的主要组成部分,嗯,WordPress。 没有它,您将无法查询数据库并显示您的内容,无论是您的博客存档、“关于”页面还是您的最新帖子。
没有 WordPress 循环,什么都不起作用。
所以,现在我们已经确定了循环的重要性,如果您以前没有遇到过它,您可能想知道它是什么。
在这篇文章中,我将回答这个问题。 我会告诉你什么是循环,它是如何工作的以及它应该去哪里。 我还将为您提供一些自定义 WordPress 循环并使其适合您的提示。
让我们首先确定 WordPress 循环的作用和去向。
继续阅读,或使用以下链接跳转:
WordPress 循环是几行(或有时多行)访问数据库、获取任何相关内容然后显示它的代码。 该代码将包括用于访问数据库的 PHP 以及用于输出找到的内容的 PHP 和 HTML 组合。
它被称为循环的原因是因为它循环——它不断重复,直到没有其他东西可以显示。 查看静态页面时,这意味着它只会循环一次,但在类别存档或您的主博客页面上,它将继续循环和输出内容,直到没有任何内容可显示。
WordPress 循环获取和输出的内容取决于以下几点:
您会在主题的每个模板文件中找到 WordPress 循环。 在这篇文章中,我们将检查当前默认主题 216 中的 WordPress 循环。 如果您还没有访问该主题的权限,请下载它并在您喜欢的代码编辑器中打开它。 在我们完成这篇文章的过程中,我将参考该主题中的不同文件和代码块,如果您可以查看并跟进,它会有所帮助。
您会在每个主题模板文件中找到 WordPress 循环,或者您可能会找到一个从模板部分中提取它的函数。
模板部分是包含在整个主题中重复使用的代码的文件,其中 WordPress 循环就是一个示例。 因此,不是在每个模板文件中重复循环,而是每个文件都拉入模板部分并运行相同的代码。
您可以在主题中使用多个包含的文件,例如,您可能只需要一个版本的 WordPress Loop 用于所有存档页面,而另一个版本用于所有单个页面。
让我们看一下 26 主题以了解这一切。
这是主题的文件结构:
有一堆模板文件:
主题在主文件夹中也有一些模板部分:
而且它里面有更多的模板部分 模板部分 文件夹。 这些中的每一个都将在主题中的其他地方调用。 其他文件如 函数.php 和 样式.css 有自己的具体作用。
让我们看一个 WordPress Loop 的例子。 首先,打开 页面.php 文件。
这是它的完整代码:
那么这其中的哪一部分是循环呢?
好。 在寻找循环时,您需要注意一件事,那就是这一行:
这就是启动 WordPress 循环的原因。 这一行结束了循环:
所以这意味着这个循环 页面.php 模板文件正在使用这些代码行运行:
但这不包括显示 WordPress 循环内容的模板标签和 HTML。 相反,这一切都包含在 内容页面.php 文件。 它用这一行来做到这一点:
那 get_template_part()
函数获取模板部分的内容并在模板文件的这一点运行它们,就像代码被编码到这个文件中一样。
在我们继续详细查看该模板部分的内容之前,请花一些时间打开主题中的其他一些模板文件。 它们中的每一个都引用了相关的模板部分,但有一些例外:
让我们继续仔细看看 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 循环将输出帖子的内容,包括以下几行:
让我们看看这是做什么的。
the_content()
模板标签来获取数据库的内容并显示它。wp_link_pages()
模板标签显示分页帖子的早期和后期帖子的链接。 在此模板部分中,这不会做任何事情,因为页面没有分页,但在单个帖子中,它将显示指向上一个和下一个帖子的链接。 entry-content
分区。在某些模板文件或模板部分中,不会输出内容,而是会输出摘录。 如果你有一个循环 存档.php 您可能会选择使用的文件 the_excerpt()
代替 the_content()
改为输出摘录。
26 主题有一个链接,具有相关用户角色的登录用户可以单击该链接来编辑帖子:
这使用 edit_post_link()
带有一些参数的函数,这些参数准确地定义了输出的内容。
在某些主题中,您会发现这里输出了更多元数据。
最后, article
包含所有内容的元素已关闭。
这就是标准的 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()
功能对页面执行相同的操作。有关使用这些方法的指导,请参阅我们的编写自定义查询的指南。
希望您现在对 WordPress 循环及其工作原理有了更好的了解。
了解 WordPress 循环的组成将帮助您更了解您在网站上使用的主题中的代码。 如果您要编写自己的主题,这也很重要:理解 WordPress Loop 并编写自己的主题比从其他地方复制一个要好得多。 这将使您的主题完全按照您的需要去做,而不会浪费代码,从而提高效率。
它是任何主题的关键部分,现在您了解了它,这将大大提高您的主题构建技能。
标签:Demand feedback