WordPress add_filter vs add_action 函數,基礎知識。

已發表: 2021-08-24

披露:這篇文章包含附屬鏈接。 當您單擊此帖子中的產品鏈接時,我可能會收到補償。 有關我的廣告政策的說明,請訪問此頁面 謝謝閱讀!

內容

  • WordPress add_filter vs add_action 函數是什麼?
  • 那麼,WordPress 中的“鉤子”到底是什麼?
  • 鉤子、過濾器和動作之間有什麼區別?
  • WordPress 中的 do_action 和 add_action 有什麼區別?
  • Action Hooks 和 Filter Hooks 有什麼區別?
  • 過濾器在 WordPress 中的作用是什麼?
  • 動作在 WordPress 中有什麼作用?
  • 調整 WordPress 插件時,我可以在 add_filter 之前使用 add_action 嗎?
  • 那麼 WordPress 中的 add_filter 鉤子與 add_action 鉤子之間的真正區別是什麼?

WordPress add_filter vs add_action 函數是什麼?

如果您可以對其進行一兩次調整,是否曾經獲得過完美的插件或主題? 但是,這兩個調整隻需要您添加一點代碼,甚至可能是一些短代碼。

但在此之前,您需要了解 add_filter 與 add_action 的基本概念、差異以及它們在 WordPress 中的工作方式,然後才能將幾乎完美編碼的插件或主題變成完全混亂的混亂。

WordPress 中的“add_action”是用來創建觸發器“鉤子”的。 當某事發生時,然後做其他事情。

“add_filter”用於“掛鉤”數據,即更改/替換。 例如,如果有 [some-code],則將其更改為 some-other-expanded-code。

“鉤子”是特定過濾器或操作的“函數”或“方法”。 更多關於下面的“鉤子”。

WordPress 提供過濾器鉤子以允許插件在其運行時修改各種類型的內部數據。 插件可以通過將回調綁定到過濾器掛鉤來修改數據。 稍後應用過濾器時,每個綁定的回調按優先級順序運行,並有機會通過返回新值來修改值。

  • 動作是執行輸出的那些 PHP 函數。
  • 過濾器是那些返回輸出的 PHP 函數。

我們可以擴展任何使用動作和過濾器的插件,而無需修改它們的代碼。 通過在我們自己的主題或插件中添加過濾器和操作。 讓我們進一步了解這些在 WordPress 中的工作原理。

那麼,WordPress 中的“鉤子”到底是什麼?

鉤子是一段代碼在特定的預定義位置交互/修改另一段代碼的一種方式。 它們構成了插件和主題如何與 WordPress Core 交互的基礎,但它們也被 WordPress Core 本身廣泛使用。

有兩種類型的鉤子:動作和過濾器。 要使用其中任何一個,您需要編寫一個稱為“回調”的自定義函數,然後將其註冊到 WordPress 掛鉤以執行特定操作或過濾器。 來源: WordPress.org

鉤子、過濾器和動作之間有什麼區別?

如上所述,“鉤子”基本上是過濾器和操作的統稱。 兩者都是為了改變函數的正常行為。

從編程的角度來看,沒有太大的區別,正如您可以看到的那樣,在WordPress 源代碼添加“動作”與添加“過濾器”是一樣的。

不同之處在於它們的使用方式。 您使用“動作”來完全改變函數的行為或向現有函數添加某些內容。

您使用“過濾器”來更改函數或變量的結果。

WordPress 中的 do_action 和 add_action 有什麼區別?

“do_action”註冊了一個“action hook”,而“add_action”向註冊的 hook 添加了一個回調函數。

Action Hooks 和 Filter Hooks 有什麼區別?

動作掛鉤

“Actions Hooks”旨在用於 WordPress 的核心或某些插件或主題讓您有機會在其內部的某個點插入代碼以執行特定任務或“動作”。

過濾器掛鉤

“Filter Hooks”的行為與“Action Hooks”非常相似,但它們的預期用途是接收一個值並可能返回該值的修改版本。

“Filter Hook”也可以像“Action Hook”一樣使用,即修改全局變量或生成一些HTML,假設這是您在調用鉤子時需要做的事情。

過濾器在 WordPress 中的作用是什麼?

“過濾器”獲取它接收到的信息,修改它,然後返回它。 換句話說,它過濾某些東西並將其傳遞回鉤子以供進一步使用。

因此,過濾器用於以特定方式修改某些內容,以便稍後代碼使用修改。

動作在 WordPress 中有什麼作用?

一個“動作”獲取它接收到的信息,執行它在其編碼中給出的任何指令,然後什麼也不返回。 基本上,它作用於某些東西然後退出,不返回任何東西給調用鉤子。

一個動作會中斷代碼流做某事,然後返回到正常流程而不做任何修改。

因此,“過濾器”是一組參數或指令,“動作”是指令的執行。

調整 WordPress 插件時,我可以在 add_filter 之前使用 add_action 嗎?

使用 add_action() 和 add_filter() 的順序基本上無關緊要。

重要的是調用相應的 do_action() 和 apply_filters() 的順序。

因此,如果“apply_filters”,例如,('wp_insert_post_data') 在“do_action”('save_post') 之前運行,則它不會工作。 你必須想出另一種方法來獲得你想要的結果。

那麼 WordPress 中的 add_filter 鉤子與 add_action 鉤子之間的真正區別是什麼?

實際上,“Filter Hooks”幾乎是“Action Hooks”的超集。 “Filter Hooks”可以做任何“Action Hooks”可以做的事情,甚至更多。 儘管開發人員沒有責任使用“Action Hook”返回值,但他們使用“Filter Hook”所做的。

“過濾鉤子”基本上定義了任務的參數,而“動作鉤子”執行任務。 有關“add_filter”鉤子和“add_action”鉤子之間差異的更多信息,請查看WordPress.org 開發人員部分中的官方 WordPress 文檔