問題描述
這個問題可能是錯的,我不確定。因為我不清楚這一點。
我知道 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。