行動掛鉤優先權
任何數量的函式都可以掛鉤到任何給定的動作。在某些情況下,鉤子函式在其他函式之前或之後執行是很重要的,這是 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 );