我已经到了必须在这里向您寻求帮助的地步。
有关admin-ajax.php代码的一部分,用于检查您是否已注册ajax操作。但是由于某种原因,触发Ajax请求时找不到我的操作。但是,如果我检查代码中的操作,就可以了。这是检查有效操作的代码部分。
if ( ! has_action( 'wp_ajax_' . $_REQUEST['action'] ) )
这是WordPress文件admin-ajax.php
中的代码段:
if ( is_user_logged_in() ) {
// If no action is registered, return a Bad Request response.
if ( ! has_action( 'wp_ajax_' . $_REQUEST['action'] ) ) {
wp_die( '0', 400 );
}
/**
* Fires authenticated Ajax actions for logged-in users.
*
* The dynamic portion of the hook name, `$_REQUEST['action']`,
* refers to the name of the Ajax action callback being fired.
*
* @since 2.1.0
*/
do_action( 'wp_ajax_' . $_REQUEST['action'] );
} else {
// If no action is registered, return a Bad Request response.
if ( ! has_action( 'wp_ajax_nopriv_' . $_REQUEST['action'] ) ) {
wp_die( '0', 400 );
}
/**
* Fires non-authenticated Ajax actions for logged-out users.
*
* The dynamic portion of the hook name, `$_REQUEST['action']`,
* refers to the name of the Ajax action callback being fired.
*
* @since 2.8.0
*/
do_action( 'wp_ajax_nopriv_' . $_REQUEST['action'] );
}
您可以在此处查看完整的代码:
https://github.com/WordPress/WordPress/blob/master/wp-admin/admin-ajax.php#L155
提前感谢您的帮助。
答案 0 :(得分:0)
对于其他路过的人。经过大量的调试和测试,我找到了答案。该操作已在继承的类中注册,因此,在代码需要时,该操作已不存在。因此,在调用了在父构造方法中注册动作的方法之后,所有方法都开始起作用。