更新日期:2021-03-06

hook 到正確的位置讓你上天堂,hook 到錯的位置讓你網站有夠忙。有些 hook 是找特定的 action 才有效果,而有些是可以勾在好幾個地方處理。但有時候想中斷輸出時,勾在順序前面一點回應比較快一點點。

在官方網站也有 do_action 清單,不過在各種不同類型頁面會有些為差異。我們可以寫一個函數把現在頁面的 action 列出來:

add_action( 'shutdown', function(){
  foreach( $GLOBALS['wp_actions'] as $action => $count ){
    printf( '%s (%d) <br/>' . PHP_EOL, $action, $count );
  }
});

 

同樣的,你也可以列出當頁面所使用的 filters,將上面的 $GLOBALS[‘wp_actions’] 換成 $GLOBALS[‘wp_filter’] 即可。