WordPress循环解释了

wordpress循环很大.很大.这是至关重要的.没有它,您的WordPress网站无法正常工作.

通过这个,我并不意味着它很大.事实上,它应该尽可能瘦,紧张.但这是制作WordPress,WordPress的东西的主要部分.如果没有它,您无法查询数据库并显示您的内容,无论是您的博客存档,您的"关于"页面或最新帖子.

没有WordPress循环的没有工作.

所以,现在我们建立了循环的重要性,你可能想知道它是否在之前没有遇到过的东西.

在这篇文章中,我会回答这个问题.我会向您展示循环是什么,它是如何运作的,它应该去哪里.我还给你一些提示来定制WordPress循环并为您制作它.

让我们首先识别WordPress循环和它的位置.

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

  • 是什么WordPress循环,我发现它在哪里?
  • wordpress循环在哪里?在模板文件中找到它
  • 解除了WordPress循环
  • 自定义WordPress循环

wordpress循环是什么,我在哪里找到它?

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

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

WordPress循环提取和输出取决于几件事:

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

您将在主题中找到每个模板文件中的WordPress循环.在这篇文章中,我们将检查当前默认主题的WordPress循环,二十六个.如果您还没有访问该主题,请在您喜欢的代码编辑器中下载并打开它.当我们通过这篇文章工作时,我将参考不同的文件和代码中的代码块,并且如果您可以看看和遵循.

In this post, I'll take apart the loop in the Twenty Sixteen default theme. 在此帖子中,我将在二十六个默认主题中分开循环.

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

您将在每个主题模板文件中找到WordPress循环,或者您可能会找到从模板部分中将其拉到的函数.

模板部分是包含在整个主题中重复使用的代码的文件,其中WordPress循环是一个例子.因此,而不是在每个单个模板文件中重复循环,而是每个文件都会在模板部分中提取并运行相同的代码.

您可以在主题中使用多个包含的文件,例如,您可能只想只需要所有存档页面的WordPress循环的一个版本,另一个版本为所有单个页面.

让我们看看二十六个主题以了解这一切.

这是主题的文件结构:

The file structure of the twenty sixteen theme

有一堆模板文件:

  • 404.php
  • archive.php
  • 页脚php
  • image.php
  • index.php
  • page.php
  • search.php
  • single.php

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

  • comments.php
  • 页脚php
  • header.php
  • searchform.php
  • 侧边栏-内容-底部.php
  • sidebar.php

,它在模板-零件文件夹中有更多的模板零件.这些中的每一个都将在主题中调用其他地方.其他文件(如 clusers.php style.css 有自己的特定角色.

让我们看看WordPress循环的一个例子.首先,打开 page.php 文件.

这是它的代码,全额:

那么这部分是循环?

嗯.在寻找循环时,有一件事需要注意,这是这条行:

这是启动WordPress循环的原因.此行关闭循环:

因此这意味着在此 page.php 模板文件中的循环正在使用这些代码行运行:

但这不包括显示WordPress循环内容的模板标记和HTML.相反,这都包含在 Content-Page.php 文件中.它用这一行做到了:

函数获取模板部分的内容并在模板文件中的此时运行它们,就好像代码被编码为此文件一样.

在我们继续详细研究该模板部分的内容之前,需要一些时间才能在主题中打开一些其他模板文件.每个人都引用相关模板部分,有一些例外:

  • 404.php 不包括WordPress循环,因为如果用户在404页上落在404页上,则不会有任何数据来获取和输出.
  • archive.php index.php 使用帖格格式分类来获取相关帖格格式的模板部分.这意味着您可以为每种帖子格式编写模板部分,使用不同格式的帖子所需的代码.如果这些文件不存在,它将返回到 content.php .
  • image.php 没有提取模板部分-而不是在模板文件中编码循环.
  • page.php 获取 content-page.php 模板部分.
  • search.php 获取 content-search.php 模板部分.
  • single.php 获取 content-single.php 模板部分.

解剖循环分离

让我们继续仔细看看WordPress循环.正如我们已经使用 Page.php ,让我们检查 content-page.php 文件.在代码编辑器中打开它.

注意:如果您正在编写主题,则可以选择将循环的模板零件直接用于模板文件.使用一个术语,板份将使您的主题更有效,但您可能会发现您使用的主题只是将循环编码为模板文件.两者都可以工作.

这是 content-page.php 的代码:

让我们一段时间逐步这一个.

打开元素并显示标题

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

article元素具有使用the_ID()模板标记的ID来获取帖子的ID,以及使用post_class()模板标记定义的类.这使其包括帖子的ID,帖子类型,分类和更多的类.

然后打开

a元素,其包括使用the_title()模板标签的柱标题.这具有前后标记的标记的参数-所以它包含在entry-title类中的h1元素中.

然后关闭header元素.

显示元数据

下一步是显示任何元数据.在这个主题中,没有大部分时间-只是帖子缩略图.使用twentysixteen_post_thumbnail()函数来显示,这是特定于此主题的.如果要了解此功能的工作原理,请查看主题的函数.php 文件-在当前版本中,此函数由第398行定义.

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

输出帖子内容

现在WordPress循环将输出帖子的内容,并使用这些行:

让我们看看这是什么.

  1. 首先,它与入口内容类打开div.
  2. 然后它使用the_content()模板标记来获取数据库的内容并显示它.

    它使用wp_link_pages()模板标记来显示前期和稍后的帖子的链接.在这个模板中,这不会做任何事情,因为页面并没有被吝啬,但在一个帖子中它将显示到上一个和下一个帖子的链接.

  3. 它关闭 entry-content div.

在某些模板文件或模板部分中,内容不会输出,但摘录将是.如果您在 archive.php 文件中有一个循环,您可能会选择使用the_excerpt()而不是the_content()来输出摘录.

完成物品

二十十六个主题然后有一个链接,带有相关用户角色的登录用户可以单击以编辑帖子:

这将使用具有几个参数的函数来定义恰好输出的参数.

在一些主题中,您会发现此处输出更多元数据.

最后,包含一切的article元素已关闭.

自定义WordPress循环

所以这是标准WordPress循环.这将自动从数据库中获取适当的内容,具体取决于正在查看的页面和输出它.它非常有效,因为相同的代码用于显示大量不同类型的内容,从帖子到页面和其他帖子类型,以及帖子,类别,作者和更多的档案.

如果您不希望WordPress循环以标准方式为每种类型的内容工作,则可以修改它.或者如果要在页面上输出完全不同的循环(或额外的循环),则可以执行此操作.让我们快速看看你如何做到这一点.

修改主环

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

要执行此操作,您将编写函数,即附加到pre_get_posts钩子.在此功能中,您可以使用条件标记来定义查询后的修改以及一些代码来告诉WordPress的准确如何修改它.

让我们来看看一个例子.主博客页仅包含 post 帖子类型的帖子:它不会显示您的任何自定义帖子类型.如果要修改此操作,请在主页上显示自定义帖子类型,您可以.

让我们说你的自定义帖子类型被注册为 MyPostType .这是您将添加到主题的函数的功能.Php 文件,将这些添加到主博客页面:

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

写一个新的循环

如果要在主循环中未获取的页面上显示内容,或者您​​希望在一页上运行多个循环,那么您可以编写自己的新查询和循环以执行此操作.

这样做有三种方法:

  • 使用get_posts()功能来获取和输出帖子,具有您自己的帖子数量的参数,分类术语或您想要专注的其他任何东西.
  • 使用get_pages()函数对页面执行相同的页面.
  • 使用WP_Query类来获取和输出绝对是您想要的任何东西.这是一个非常灵活且有用的类,您可以在您的主题中的任何地方使用.

有关使用以下每个的指导,请参阅我们编写自定义查询的指南.

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

希望,你现在已经更好地了解WordPress循环以及它的工作原理.

知道WordPress循环由哪些内容由您的网站上使用的主题中的代码更具更多意义.如果您要编写自己的主题,这也是必不可少的:了解WordPress循环并写出你自己的循环,它比它从其他地方复制一个.这将使您的主题确切地完成您需要的内容,而不是没有浪费的代码,提高效率.

这是任何主题的重要部分,现在您了解它,这将大大提高您的主题建设技能.

8

发表回复