[问题] 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