WORDPRESS第九課WORDPRESS核心文件功能及其載入

WordPress核心文件功能及其載入

WordPress中的各種功能都是通過其核心文件來完成(通過調用核心文件中的類和函數等),其核心文件都放在WPINC(即wp- includes)目錄中,這些核心文件的用途,及其加載的順序和位置,對我們理解WordPress的執行流程和架構至關重要。

:爲了是思路更加的清晰易懂,暫時不考慮後臺管理相關的文件,以及多博客/站點相關的文件!

 

 

加載WP核心文件:

如下列表所示,這42個文件是核心文件中的核心,它們定要了WordPress使用的核心類和函數庫,無可執行代碼,只有當調用時纔會執行相應的函數。這些文件都在wp-setting.php文件中依照一定的條件被加載,其功能見如下列表:

  1. WPINC/load.php,定義一組加載 WP 所需要的函數,無執行代碼;
  2. WPINC/default-constants.php,定義一組函數,這些函數對那些能夠被重寫的常量和全局變量進行默認賦值,它們通常可以在 wp-config.php 中重新配置,無執行代碼;
  3. WPINC/compat.php,提供某些 PHP 版本缺少的函數(用於支持不同版本 PHP 上的兼容和移植),無執行代碼;
  4. WPINC/functions.php,定義 WP 主要的 API,無執行代碼;
  5. WPINC/classes.php,定義 WP 主要的類,無執行代碼。
  6. WPINC/plugin.php,定義插件 API,這些 API 用於創建 action、filter、以及鉤子函數和方法,無執行代碼;
  7. WPINC/pomo/mo.php,定義語言處理類 MO,並加載文件,無執行代碼:
  8. WPINC/pomo/translations.php,定義對 entry 進行翻譯的相關類,並加載文件,無執行代碼:
  9. WPINC/pomo/entry.php,定義翻譯實體類 Translation_Entry,無執行代碼;
  10. WPINC/pomo/streams.php,定義一組類,用於從文件讀入數據流,無執行代碼。————————我是基本功能分割線————————
  11. WPINC/l10n.php,定義一組進行語言翻譯的 API/函數,無執行代碼。
  12. WPINC/formatting.php,定義 WP 主要格式化API,用於對文本、字符串、函數輸出進行格式化,無執行代碼;
  13. WPINC/query.php,定義一組 WP 的查詢 API,無執行代碼;
  14. WPINC/theme.php,定義一組主題、模板和樣式表函數,無執行代碼;
  15. WPINC/user.php,定義一組 WP 的用戶 API,無執行代碼;
  16. WPINC/meta.php,定義一組元數據 API,這些 API 用於獲取和操作 WP 中各種對象類型的元數據,一個對象的元數據簡單的表示爲鍵值對,對象可能包含多個元數據實體,他們有相同的鍵但不同的值,無執行代碼;
  17. WPINC/general-template.php,定義常用的模板標籤,它們可以在模板中任意使用,無可執行代碼;
  18. WPINC/link-template.php,定義一組模板中處理鏈接的函數(例如處理固定鏈接),無可執行代碼;
  19. WPINC/author-template.php,定義一組模板中處理作者的函數,這些函數在主題中使用,並且必須出現在 WP LOOP 中,無可執行代碼;
  20. WPINC/post-template.php,定義一組模板中處理文章的函數,用於獲取 Loop 中當前文章的內容,無可執行代碼;
  21. WPINC/category.php,定義一組 WP 的目錄 API,無可執行代碼;
  22. WPINC/category-template.php,定義一組目錄的模板標籤和 API,無可執行代碼;
  23. WPINC/comment.php,定義一組 WP 的評論 API,無可執行代碼;
  24. WPINC/comment-template.php,定義一組評論的模板標籤,旨在 Loop 中有用,無可執行代碼;
  25. WPINC/feed.php,定義一組 WP 的 Feed API,其中大部分只在 Loop 中使用,無可執行代碼;
  26. WPINC/bookmark.php,定義一組 WP 的友情鏈接/書籤 API,無可執行代碼;
  27. WPINC/bookmark-template.php,定義一組書籤的模板標籤,無可執行代碼;
  28. WPINC/cron.php,定義一組 WP 的 CRON(定時任務) API,用於進行事件調度,無可執行代碼;
  29. WPINC/deprecated.php,一組已廢棄的 API,無可執行代碼;
  30. WPINC/class.wp-dependencies.php,定義類 WP_Dependencies 和 _WP_Dependency,用於反壓腳本隊列,這些類由 WP_Scripts類和 WP 腳本隊列 API 重構而來,無可執行代碼;
  31. WPINC/class.wp-scripts.php,定義類 WP_Scripts,繼承自 WP_Dependencies,功能同上,無可執行代碼;
  32. WPINC/functions.wp-scripts.php,定義一組 WP 的腳本隊列 API,功能同上,無可執行代碼;
  33. WPINC/functions.wp-styles.php,定義一組 WP 的樣式隊列 API,無可執行代碼。
  34. WPINC/taxonomy.php,定義一組 WP 的分類方法(與目錄概念不同,是在目錄之上的分類) API, 無可執行代碼;
  35. WPINC/http.php,定義一組簡化和統一 http 請求的 API,無可執行代碼;
  36. WPINC/class- http.php,定義一組簡化和統一 http 請求的類 WP_Http,WP_Http_Fsockopen,WP_Http_Fopen,WP_Http_Streams,WP_Http_ExtHTTP,WP_Http_Curl,WP_HTTP_Proxy,WP_Http_Cookie,WP_Http_Encoding, 用於標準化 http 請求,處理 cookies 和 gzip 編碼和解碼,無可執行代碼;
  37. WPINC/nav-menu.php,定義一組 WP 中導航菜單 API,屬於 WP3.0 新添加功能,無可執行代碼;
  38. WPINC/nav-menu-template.php,定義一組導航菜單的模板標籤及 API,無可執行代碼。
  39. WPINC/pluggable.php,這裏面的函數可以被插件覆蓋,如果插件沒有重新定義這些函數,則這些函數將會被使用,無可執行代碼;
  40. WPINC/pluggable-deprecated.php,被廢棄的可插件覆蓋函數,無可執行代碼;
  41. WPINC/locale.php,定義日期和時間的本地化對象類 WP_Locale,無可執行代碼;
  42. WPINC/post-thumbnail-template.php,定義一組 WP 的文章略圖模板標籤,無可執行代碼。

至此,WP 已經加載大多數的核心文件,wp-includes 目錄下未被加載的文件基本爲第三方庫文件、已廢棄文件,或者和多博客相關的文件。他們將會在相應的函數中根據需要加載:

  1. atomlib.php, 在WPINC/functions.php中的wp_maybe_load_widgets()函數中加載;
  2. cache.php, 在WPINC/load.php中的wp_start_object_cache()函數中加載;
  3. class-feed.php, 在WPINC/feed.php中的fetch_feed()函數中加載;
  4. class-IXR.php, 在xmlrpc.php文件中加載;在WPINC/comment.php中的pingback()和weblog_ping()函數中加載;在WPINC/functions.php中的do_enclose()函數中加載;
  5. class-json.php, 在WPINC/compat.php中的json_encode()和json_decode()函數中加載;
  6. class-oembed.php, 在WPINC/media.php中的wp_oembed_get()和wp_oembed_add_provider()函數中加載;
  7. class-phpass.php, 在WPINC/pluggable.php中的wp_hash_password()和wp_check_password()函數中加載;
  8. class-phpmailer.php, 在WPINC/pluggable.php中的wp_mail()函數中加載;
  9. class-pop3.php, 在wp-mail.php中加載;
  10. class-simplepie.php, 在WPINC/class-feed.php中加載;
  11. class-smtp.php, 在WPINC/pluggable.php中的wp_mail()函數中加載;
  12. class-snoopy.php, 已廢棄,由http.php文件替代;
  13. default-embeds.php, 在WPINC/functions.php中的wp_maybe_load_embeds()函數中加載;
  14. default-widgets.php, 在WPINC/functions.php中的wp_maybe_load_widgets()函數中加載;
  15. feed-atom.php, 在WPINC/functions.php中的do_feed_atom()函數中加載;
  16. feed-atom-comments.php, 在WPINC/functions.php中的do_feed_atom()函數中加載;
  17. feed-rdf.php, 在WPINC/functions.php中的do_feed_rdf()函數中加載;
  18. feed-rss2.php, 在WPINC/functions.php中的do_feed_rss2()函數中加載;
  19. feed-rss2-comments.php, 在WPINC/functions.php中的do_feed_rss2()函數中加載;
  20. feed-rss.php, 在WPINC/functions.php中的do_feed_rss()函數中加載;
  21. ms-default-constants.php, 在WPINC/ms-setting.php中加載;
  22. ms-files.php
  23. ms-load.php
  24. registration.php, 在wp-activate.php, wp-signup.php, wp-login.php中加載;
  25. registration-functions.php, 已廢棄,由registration.php文件替代;
  26. rss.php, 已廢棄,由class-simplepie.php文件替代;
  27. rss-functions.php, 已廢棄,由rss.php文件替代;
  28. wp-db.php, 在WPINC/functions.php中的require_wp_db()函數中加載;
  29. wp-diff.php, 在WPINC/functions.php中的wp_text_diff()函數中加載;
  30. pomo/po.php, 沒有被加載???

至此WordPress中的所有核心文件的功能及其加載順序或位置都已明晰,我們就可以根據自己的需求對其進行修改(或添加刪除),以達到自身的目的!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章