簡單來說,Actions 用於在特定時間點執行代碼,Filters 用於修改數據。在 WordPress 開發中,hooks 是非常強大且靈活的工具,讓開發者能夠輕鬆地擴展和定制 WordPress。
在 WordPress 中,"hook" 是一種讓開發者在不修改核心代碼的情況下,擴展或自定義 WordPress 功能的機制。
除此之外,許多外掛也會提供各種 Hooks 讓開發者有機會可以去客製化一些外掛的行為。
WordPress Hooks 有哪一些類型?
Hook 有兩種類型:Actions 和 Filters。
Actions(動作):Actions 是 WordPress 執行特定事件時觸發的 hook。這些事件可能包括 WordPress 初始化、文章發布、用戶登錄等。通過註冊一個 action hook,開發者可以在這些事件發生時運行自己的代碼。這使得開發者能夠插入自己的功能,而不必直接改動 WordPress 核心文件。例如,你可以在文章發布時發送一封郵件通知。
Filters(過濾器):Filters 是用來修改 WordPress 執行過程中數據的 hook。通過註冊一個 filter hook,開發者可以攔截、修改,然後返回這些數據。這樣可以自定義數據的輸入和輸出,比如修改文章內容、標題、網址等。
一個沒有安裝任何外掛的 WordPress 在瀏覽首頁時會執行哪一些 Hook?
在沒有安裝任何外掛的 WordPress 網站上,當訪問首頁時,會執行一系列的 hooks。這些 hooks 是 WordPress 核心提供的,負責處理和呈現頁面。以下是首頁加載過程中一些主要的 hooks(包括 actions 和 filters):
1. 初始化和設置
muplugins_loaded
: 在所有的 "Must Use" 插件加載完成後觸發。plugins_loaded
: 在所有的插件(包括 "Must Use" 插件和普通插件)加載完成後觸發。setup_theme
: 在主題加載之前觸發。after_setup_theme
: 在主題加載之後立即觸發。通常用於主題的初始化。
2. 請求處理
init
: 在 WordPress 完成初始設置後觸發,適合用於初始化操作。wp_loaded
: 在 WordPress 完全加載完畢後觸發,適合在 WordPress 環境完全準備好後執行代碼。
3. 查詢和模板設置
template_redirect
: 在決定使用哪個模板文件來呈現頁面之前觸發,通常用於重定向操作。get_header
: 在載入 header.php 模板文件之前觸發。wp_head
: 在 head 部分結束前觸發,允許插入額外的 HTML 或執行其他操作。
4. 主內容處理
loop_start
: 在主循環(main loop)開始前觸發,通常用於在文章列表開始之前執行一些代碼。the_post
: 在每個文章開始渲染前觸發,通常用於修改文章數據。loop_end
: 在主循環(main loop)結束後觸發。
5. 頁腳處理
get_footer
: 在載入 footer.php 模板文件之前觸發。wp_footer
: 在頁面結束前(