WordPress實際上如何在幕後工作(信息圖形)


您是否曾經想過WordPress在幕後的實際運作方式?

對於典型的用戶來說,這看起來很簡單,因為您鍵入URL並在幾秒鐘內加載頁面,但是幕後發生了很多事情。

在本指南中,我們將引導您逐步了解WordPress在幕後的實際工作方式,並且我們還創建了易於遵循的信息圖。

WordPress如何在幕後運作

什麼是WordPress?

WordPress是網站建設者和內容管理系統。 它是一個開源軟件,任何人都可以使用它來製作任何種類的網站。

它最初於2003年作為博客平台,但很快轉變為CMS,後來又轉變為成熟的網站建設平台。 今天,它為Internet上所有網站的38%以上提供支持。

要了解有關其演變,歷史以及優缺點的更多信息,請參閱關於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的新項目。

advanced-cache.php文件顯示為插件

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源,則WordPress將加載源模板。

28.加載模板

WordPress現在將基於WordPress模板層次結構查找模板文件。 然後加載通常包含WordPress循環的模板。

29.採取行動“關機”

在結束所有PHP執行之前,WordPress會觸發最後一個名為shutdown的操作。

WordPress在這裡停止工作。 它已經運行了代碼並生成了用戶請求的網頁。

現在,您的網絡託管服務器通過向用戶發送WordPress生成的網頁來回復用戶的請求。 該頁麵包含HTML,CSS和Javascript代碼,它告訴用戶的瀏覽器如何在屏幕上顯示它。

是不是很神奇? 所有這些事情都在幾毫秒內發生。 如果您使用的是這些最佳的WordPress託管服務之一,那麼理想情況下,您的頁面將在幾秒鐘內加載。

我們希望本文能幫助您了解WordPress的幕後工作方式。 您可能還希望查看有關如何為初學者提高WordPress速度和性能的分步指南。

如果您喜歡這篇文章,請訂閱我們的YouTube頻道WordPress視頻教程。 您也可以在找到我們 推特 和Facebook。