跳到主要内容

您是否想过WordPress在幕后的实际运作方式?对于大多数用户来说,这似乎很简单,因为您键入URL并在几秒钟内加载页面,但是幕后发生了很多事情。在本指南中,我们将引导您逐步了解WordPress在幕后的实际工作方式,并且我们还创建了易于遵循的信息图。

为什么您应该学习WordPress的工作原理?

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

了解WordPress的工作原理以及幕后发生的事情可以帮助您理解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无法连接到数据库,则您将看到“ 建立数据库连接错误”错误,并且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本地化系统,加载翻译,设置语言环境等。请参阅我们的指南,了解如何以其他语言使用WordPress

9.加载多站点插件

如果是多站点网络,那么WordPress现在将加载多站点插件。了解有关插件如何在WordPress多站点网络上工作的更多信息。

10.采取行动’muplugins_loaded’

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

11.加载活动插件

WordPress现在将在网站上加载所有活动插件。它是通过在WordPress数据库的选项表中的active_plugins条目中查找来实现的。这使WordPress可以忽略在您的网站上安装但未激活的插件。

12.加载pluggable.php文件

pluggable.php文件包含可由WordPress插件重新定义的功能。WordPress现在将查看此文件中的功能是否已由另一个插件定义。否则,它将定义这些功能本身。

13.执行操作“ 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.执行“ 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设置了主题并加载了主题功能之后,将执行此操作。这是可用于主题的第一个动作。

20.设置当前用户对象

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

21.做动作“初始化”

到目前为止,WordPress已加载了所需的所有关键信息。现在,它触发“ init”动作。

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

22.做“ widget_init”操作

widget_init操作使开发人员可以注册小部件并运行此时需要运行的代码。

23.运行wp()

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

24.解析请求

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

然后运行查询变量过滤器,请求动作挂钩,并发送标头请求。

25.运行查询

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

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

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

接下来,它使用WP_Query对象触发DO_ACTION_REF_ARRAY’pre_get_posts’操作。

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

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

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

26.做动作’template_redirect’

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

27.加载提要模板

如果请求的内容是RSS feed,那么WordPress将加载该feed模板。

28.加载模板

WordPress现在将基于WordPress模板层次结构查找模板文件。然后加载通常包含WordPress循环的模板。

29.采取行动“关机”

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

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

现在,您的网络托管服务器通过向用户发送WordPress生成的网页来回复用户的请求。该页面包含HTML,CSS和Javascript代码,它告诉用户浏览器如何在屏幕上显示它。

是不是很神奇?所有这些事情都在几毫秒内发生。如果您使用的是这些最佳的WordPress托管服务之一,那么理想情况下,您的页面将在几秒钟内加载。

回到顶部