十一年专注,只做WordPress定制开发一件事

WordPress 在幕后实际是如何工作的

王超
2024-09-18
主题开发
149 次

了解 WordPress 在幕后的工作原理可能很有趣。对于大多数用户来说,这似乎很简单:输入 URL,页面就会快速加载。然而,实际上在后台发生了很多事情。

几年前,当我们第一次开始使用 WordPress 时,我们深入研究了一切是如何运作的。现在,我们在这里以简单的语言与您分享这些知识,以便您更多地了解 WordPress。

在本指南中,我们将引导您了解 WordPress 的内部工作原理。我们还创建了一个易于遵循的信息图,以使事情更清晰。

什么是 WordPress?

WordPress 是一个网站构建器和内容管理系统。它是任何人都可以用来创建任何类型的网站的开源软件。

它于 2003 年作为一个博客平台开始,但很快转变为 CMS,后来成为一个成熟的网站建设平台。今天,它为互联网上超过 43% 的网站提供支持。

为什么要学习 WordPress 的工作原理?

WordPress 是一个开源软件,这意味着任何人都可以研究它的代码并为其编写他们的应用程序(插件)和模板(主题)。

多年来,我们看到无数初学者通过简单地学习 WordPress 如何作为软件工作而迅速成为高级用户。

它还将教您如何提高 WordPress 性能并为您的项目编写更好的代码。

本指南将逐步引导您完成整个过程。我们将在用户请求页面时开始,并在该页面完全加载时结束。

准备?让我们开始吧。

1. 加载 wp-config.php 文件

wp-config.php是 WordPress 配置文件。它为 WordPress 网站设置全局变量并包含您的 WordPress 数据库信息。出于显而易见的原因,这是 WordPress 加载的第一个文件。

详细了解 wp-config.php 文件以及如何对其进行编辑。

2. 设置默认常量

加载 wp-config.php 文件后,WordPress 将继续设置默认常量。

这包括默认 WordPress 上传位置、最大文件大小以及 wp-config.php 文件中设置的其他默认常量等信息。

3. 加载 advanced-cache.php 文件

如果您的网站上存在 advanced-cache.php 文件,则 WordPress 接下来将加载它。

此文件充当插入口文件,并被几个流行的插件使用,尤其是 WordPress 缓存插件。如果您的网站使用此文件,您将在插件屏幕上看到一个名为“Drop-ins”的新项目。

4. 加载 wp-content/db.php 文件

WordPress 允许开发人员创建自己的数据库抽象层并将它们加载到放置在 wp-content 文件夹中的 db.php 文件中。WordPress 缓存插件通常使用它来提高数据库性能。

如果您的网站存在此文件,则 WordPress 将加载它。

5. 连接 MySQL 并选择数据库

WordPress 现在有足够的信息来进一步进行。它将连接到 MySQL 服务器并选择数据库。

如果 WordPress 无法连接到数据库,您将看到 “Error establishing database connection” 错误,并且 WordPress 将在此处退出。

如果一切正常,那么它将继续进行下一步。

6. 加载 object-cache.php 或 wp-includes/cache.php 文件

WordPress 现在将查找 object-cache.php 文件。如果它不存在,那么 WordPress 将继续加载 wp-includes/cache.php 文件。

7. 加载 wp-content/sunrise.php 文件

如果它是一个多站点网络,那么 WordPress 将查找 sunrise.php 文件(如果它存在于 wp-content 文件夹中)。

8. 加载本地化库

WordPress 现在将在 wp-includes 文件夹中加载 l10n.php 库。此文件加载 WordPress 本地化系统、加载翻译、设置区域设置等。

9. 加载多站点插件

如果它是一个多站点网络,那么 WordPress 将加载多站点插件。

10. 执行 Action 'muplugins_loaded'

该操作muplugins_loaded现在由 WordPress 运行。此操作仅适用于 WordPress 多站点上的网络激活插件。

11. 加载活动插件

WordPress 现在将加载网站上的所有活动插件。它通过查看 WordPress 数据库选项表中的 active_plugins 条目来实现这一点。这允许 WordPress 忽略您网站上已安装但未激活的插件。

12. 加载 pluggable.php 文件

pluggable.php 文件包含可由 WordPress 插件重新定义的函数。

WordPress 现在将查看另一个插件是否已经定义了此文件中的函数。否则,它将自己定义这些函数。

13. 执行 Action 'plugins_loaded'

WordPress 现在将运行操作 'plugins_loaded'。

它允许开发人员挂接他们的函数,以便在加载所有活动插件后运行。

14. 加载重写规则

WordPress 现在将加载重写规则。这些重写规则帮助 WordPress 使用对 SEO 友好的 URL。

15. 实例化 $wp_query、$wp_rewrite $wp

此时,WordPress 会加载以下对象:

$wp_query:保存类的全局实例WP_Query。它告诉 WordPress 以典型的 WordPress 查询格式请求哪些内容。

$wp_rewrite 中:保存 WP_Rewrite 类的全局实例。它包含您的重写规则和函数,这些规则和函数告诉 WordPress 使用哪个 URL 来显示请求的内容。

$wp:WP 类的全局实例包含将解析您的请求并执行主查询的函数。

16. 执行 Action 'setup_theme'

WordPress 现在将继续运行“setup_theme”操作。此操作在加载 WordPress 主题之前运行。

17. 加载子主题的 functions.php 文件

functions.php 文件充当插件,在 WordPress 主题中用于向您的网站添加特定于主题的功能。如果您使用的是子主题,则 WordPress 现在将加载子主题的 functions.php 文件。

否则,它将继续加载您当前活动主题的 functions.php 文件。

18. 加载父主题的 functions.php 文件

如果您使用的是子主题,则 WordPress 现在将加载父主题的 functions.php 文件。

19. 执行 Action 'after_setup_theme'

此操作在 WordPress 设置主题并加载主题函数后运行。这是主题可用的第一个操作。

20. 设置当前用户对象

此时,WordPress 会加载当前 user 对象。它允许 WordPress 根据用户的角色和能力管理请求。

21. 执行 Action 'init'

到目前为止,WordPress 已经加载了它需要的所有关键信息。现在,它会触发 'init' 操作。此操作还会注册核心中可用的块或由该网站上安装的任何插件提供的块。

此操作使开发人员能够添加需要在 WordPress 加载所有前面提到的信息后执行的代码。

22. 执行 “widget_init” 动作

该操作允许开发人员注册 widget 并运行他们此时需要运行的代码。widget_init

23. 运行 wp()

WordPress 现在调用位于文件中的函数。它设置 WordPress 查询全局变量 $wp、$wp_query、$wp_the_query,然后调用 $wp->main。wp()wp-includes/functions.php

24. 解析请求

现在 WordPress 拥有解析用户请求所需的所有信息。它首先检查 rewrite 规则以匹配用户的请求。

然后,它运行查询变量筛选条件,请求操作挂钩,并发送标头请求。

25. 运行查询

如果没有内容与查询匹配,则 WordPress 将设置 is_404 变量。

否则,WordPress 将继续加载查询变量。

然后它将运行 WP_Query->get_posts()。

接下来,它DO_ACTION_REF_ARRAY对象触发 'pre_get_posts' 动作WP_Query。

WordPress 现在将运行 apply_filters 来清理查询并运行一些最终检查。

现在,它从数据库中获取帖子并应用 posts_results 和 the_posts 过滤器。

查询部分以 WordPress 返回帖子结束。

26. 执行 template_redirect

WordPress 现在将运行该操作。这个钩子在 WordPress 确定要加载的模板页面之前运行。template_redirect

27. 加载源模板

如果请求的内容是 RSS 源,则 WordPress 会加载源模板。

28. 加载模板

WordPress 现在将根据 WordPress 模板层次结构查找模板文件。然后,它会加载模板,该模板通常包含一个 WordPress 循环。

29. 执行操作 'shutdown'

在结束所有 PHP 执行之前,WordPress 会触发最后一个名为 shutdown 的操作。

WordPress 在这里停止工作。它已运行代码并生成用户请求的网页。

现在,您的网络托管服务器通过向用户发送 WordPress 生成的网页来回复用户的请求。

此页面包含 HTML、CSS 和 Javascript 代码,这些代码告诉用户的浏览器如何在屏幕上显示它。

太神奇了,不是吗?所有这些事情都在几毫秒内发生。如果您使用的是这些最好的 WordPress 托管服务之一,您的页面将理想地在几秒钟内加载。

我们希望本文能帮助您了解 WordPress 在幕后是如何工作的。

文章标签:

WordPress日记主要承接WordPress主题定制开发PSD转WordPressWordPress仿站以及以WordPress为管理后端的小程序、APP,我们一直秉持“做一个项目,交一个朋友”的理念,希望您是我们下一个朋友。如果您有WordPress主题开发需求,可随时联系QQ:919985494 微信:18539976310

搜索

嘿,有问题找我来帮您!