問題描述

這個問題可能是錯的,我不確定。因為我不清楚這一點。

我知道 add_action 是用來把我們的函數掛鈎到指定的函數。例如 add_action('wp_head'.'myfunc'); 現在 myfunc 中的代碼將在 wp_head()中執行。這很清楚,但我對 do_action 有什麼疑問?

我認為它是用來創建我們自己的鈎子像已經可用的鈎子 (wp_head,wp_footer,.. 等) 如果我是正確的,任何人都可以用簡單的例子給我一個簡單易懂的答案。

我已經嘗試了互聯網上的差異,但都指向了 add_action 和 add_filter 之間的區別。我不想去那裏,因為我想澄清一下,然後我會移動到那裏。

有誰能夠幫助我?

問題 POST 後編輯

function custom_register()
{
    echo '<script>jQuery(document).ready(function(){alert("Learning Hooks");});</script>';

}
do_action('custom');

add_action('custom','custom_register');

我在插件中嘗試過這個,但我沒有收到警報消息。

但是當我用 wp_head 掛接相同的功能時,它工作正常

/******************working****************/
add_action('wp_head','custom_register');

最佳解決方案

使用 do_action( 'unique_name' )創建自己的操作。

您可以使用它來提供 API for your plugin,因此其他插件可以為您的自定義操作註冊回調。示例:Do I need to call do_action in my plugin?

但是您也可以在主題中使用自定義操作 (或過濾器) 。示例:Best practice way to implement custom sections into a WordPress theme

而且您可以結合使用一個插件和一個主題一起工作。示例:How to make method from plugin available in theme?

總結:add_action( 'foo' )註冊回調,do_action( 'foo' )執行註冊的回調。

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。