WordPress 背后实际工作原理(信息图表)

05/09/2023

什么是 WordPress?

WordPress 是一个网站构建器和内容管理系统。它是开源软件,任何人都可以使用它来创建任何类型的网站。它于 2003 年作为博客平台开始,但很快转变为 CMS,并后成为一个完整的网站构建平台。如今,WordPress 支持了互联网上超过 43% 的网站。

为什么你应该了解 WordPress 的工作原理?

WordPress 是一个开源软件,任何人都可以学习其代码,并为其编写应用程序(插件)和模板(主题)。多年来,我们见过无数初学者通过简单地学习 WordPress 作为软件的工作原理,很快成为高级用户。了解这些还可以帮助你改进 WordPress 性能并为你的项目编写更好的代码。

WordPress 的工作步骤

1. 加载 wp-config.php 文件

wp-config.php 是 WordPress 的配置文件。它为 WordPress 站点设置全局变量,并包含你的 WordPress 数据库信息。因此,这是 WordPress 加载的第一个文件。

2. 设置默认常量

在加载 wp-config.php 文件之后,WordPress 将继续设置默认常量。这包括像默认的 WordPress 上传位置,最大文件大小和其他在 wp-config.php 文件中设置的默认常量。

3. 加载 advanced-cache.php 文件

如果你的站点上存在 advanced-cache.php 文件,那么 WordPress 将接下来加载它。这个文件作为一个插入文件,由几个流行的插件,特别是 WordPress 缓存插件使用。

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

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

5. 连接 MySQL 和选择数据库

现在,WordPress 已经有足够的信息来继续操作。它将连接到 MySQL 服务器并选择数据库。如果没有连接到数据库,你将看到“建立数据库连接错误”信息,并且 WordPress 将在此停止。

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

WordPress 将查找 object-cache.php 文件。如果不存在,则 WordPress 将加载 wp-includes/cache.php 文件。

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

如果是多站点网络,那么 WordPress 将在 wp-content 文件夹中查找 sunrise.php 文件。

8. 加载本地化库

WordPress 将加载位于 wp-includes 文件夹中的 l10n.php 库。这个文件加载 WordPress 本地化系统,加载翻译,设置语言环境等。

9. 加载多站点插件

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

10. 执行 ‘muplugins_loaded’ 动作

WordPress 现在运行 ‘muplugins_loaded’ 动作。此动作仅适用于在 WordPress 多站点上启用的网络插件。

11. 加载已启用插件

WordPress 将加载站点上所有启用的插件。它通过查找 WordPress 数据库选项表中的 active_plugins 条目来完成此操作。

12. 加载 pluggable.php 文件

pluggable.php 文件包含可以被 WordPress 插件重新定义的函数。WordPress 将检查是否已有其他插件定义了文件中的函数,未定义时则由 WordPress 自己定义。

13. 执行 ‘plugins_loaded’ 动作

WordPress 现在运行 ‘plugins_loaded’ 动作。此动作允许开发者在加载所有活动插件后运行他们的自定义函数。

14. 加载重写规则

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

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

此时,WordPress 加载以下对象:$wp_query、$wp_rewrite 和 $wp。它们分别处理查询内容、重写规则和解析用户请求。

16. 执行 ‘setup_theme’ 动作

WordPress 现在运行 ‘setup_theme’ 动作。此动作在加载 WordPress 主题之前运行。

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

functions.php 文件作为插件使用,用于在 WordPress 主题中添加特定于主题的功能。如果使用子主题,WordPress 将加载子主题的 functions.php 文件,否则加载当前激活主题的 functions.php 文件。

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

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

19. 执行 ‘after_setup_theme’ 动作

在 WordPress 设置主题并加载主题函数后,运行 ‘after_setup_theme’ 动作。此动作是可用于主题的第一个动作。

20. 设置当前用户对象

此时,WordPress 加载当前用户对象,根据用户的角色和权限管理请求。

21. 执行 ‘init’ 动作

WordPress 加载完所有重要信息后,运行 ‘init’ 动作。此动作注册核心或插件提供的区块。

22. 执行 ‘widget_init’ 动作

‘widget_init’ 动作允许开发者注册小部件并在此时运行所需的代码。

23. 运行 wp() 函数

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

24. 解析请求

WordPress 开始解析用户请求。它先检查重写规则以匹配用户请求,然后运行查询变量过滤器,请求动作钩子并发送头请求。

25. 运行查询

如果没有内容匹配查询,WordPress 将设置 is_404 变量。否则,继续加载查询变量,运行 WP_Query->get_posts() 并应用过滤器清理查询。然后从数据库中提取帖子并返回。

26. 执行 ‘template_redirect’ 动作

WordPress 运行 ‘template_redirect’ 动作,此钩子在确定加载哪个模板页面前运行。

27. 加载订阅源模板

如果请求的内容是 RSS 订阅源,WordPress 将加载订阅源模板。

28. 加载模板

WordPress 根据模板层级查找模板文件并加载它,其中通常包含 WordPress 循环。

29. 执行 ‘shutdown’ 动作

在结束所有 PHP 执行之前,WordPress 运行最后一个动作 ‘shutdown’。此时,WordPress 停止工作,生成用户请求的网页。然后你的网络托管服务器回复用户请求并发送生成的网页,包括 HTML、CSS 和 Javascript 代码,指示用户浏览器如何显示。

惊人的是,这些过程都在毫秒内发生。如果使用最佳的 WordPress 托管服务,你的页面理想情况下会在几秒钟内加载。

希望这篇文章帮你了解 WordPress 如何在后台工作。你可能还想查看保护 WordPress 管理区域的技巧或这篇包含实用 WordPress 提示、技巧和黑客的指南。



Related Posts

  • 2024-08-04
  • WordPress 教学

不喜欢 WordPress 4.3 引入的格式化快捷键?觉得有点烦人?最近,有用户问我们如何在 WordPress 中禁用视觉编辑器格式化快捷键。在本文中,我们将向您展示如何做到这一点。

閱讀更多
  • 2024-07-31
  • WordPress 教学

你在 WordPress 网站上看到 503 服务不可用错误吗?503 错误是因为服务器无法处理请求,通常是由于服务器过载或维护。而这个错误不会告诉你具体原因,这对于初学者来说非常令人沮丧。本文将向你展示如何修复 WordPress 中的 503 服务不可用错误。

閱讀更多
  • 2024-07-30
  • WordPress 教学

管理一个企业需要大量的工作。如果您无法正确维护您的 WordPress 网站,可能会迅速看到流量和销售额下降的现象。幸运的是,您可以聘请虚拟助手 (VA) 来帮助管理您的网站。本文将教您如何聘请 WordPress 虚拟助手,以便您可以专注于业务中最重要的活动。

閱讀更多

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}
>