行動掛鉤優先權

任何數量的函式都可以掛鉤到任何給定的動作。在某些情況下,鉤子函式在其他函式之前或之後執行是很重要的,這是 add_action()$priority 的第三個引數發揮作用的地方。

如果省略 $priority 引數,則該函式將附加預設優先順序 10。當動作被觸發時,將從新增了最小 $priority 的那些開始呼叫鉤住函式,並進入具有最大 $priority 的函式。共享相同優先順序的任何鉤子函式將按新增它們的順序(它們各自的 add_action() 呼叫的執行順序)呼叫。

例如,假設第三方外掛使用與'template_redirect'操作掛鉤的功能,以便將訪問者的 daily-deal 頁面轉發到外部電子商務站點的聯合連結,但是你希望重定向僅發生在登入使用者。你需要使用自己的'template_redirect'掛鉤將登出的訪問者傳送到登入頁面。在確定第三方外掛使用 10 的預設 $piority 附加它的功能後,你可以使用 9 的優先順序掛鉤你的功能,以確保你的登入檢查首先發生:

function redirect_deal_visitors_to_login() {
  if( is_page( 'daily-deal' ) && !user_is_logged_in() ) {
    wp_redirect( wp_login_url() );
    exit();
  }
}

add_action( 'template_redirect', 'redirect_deal_visitors_to_login', 9 );