[問題] WordPress的wp_ajax與admin_init?

作者: pthuang (◢曉筱◤)   2019-01-02 11:15:49
WordPress新手想請問各位大大們
在學習發動 AJAX 的時候發現大多會建議使用 wp_ajax 與 wp_ajax_nopriv
就我目前的理解 有 nopriv 的時候是給尚未登入的使用者
而沒有 norpiv 的則是給已經登入的使用者
兩個鉤子以 if ( is_user_logged_in() ) 被區隔開來
這時候產生了一個我無法理解的問題
我翻了存在這兩個 do_action 的 admin-ajax.php 這支檔案
裡面並沒有提供「不管有沒有登入都要執行」的 wp_ajax 相關掛鉤
但是卻又發現在更上方有在上述 if 之外的 do_action( 'admin_init' )
既然如此 為什麼大多都會建議用下面這種方式
add_action( 'wp_ajax_xxx', 'xxx' );
add_action( 'wp_ajax_nopriv_xxx', 'xxx' );
而不是採用
add_action( 'admin_init', 'xxx' );
一次解決就好?這中間是否有什麼我沒搞清楚的原因或可以一次解決的用法?

Links booklink

Contact Us: admin [ a t ] ucptt.com