我试图在我的自定义类中运行ajax操作,但它似乎没有调用所有操作(实际上是类方法)。脚本加载良好,意味着包含类并实例化。
class Myclass {
public function __construct() {
add_action( 'wp_enqueue_scripts', array( $this, 'scripts' ) );
add_action( 'wp_ajax_loadmore', array( $this, 'loadmore' ) );
add_action( 'wp_ajax_nopriv_loadmore', array( $this, 'loadmore' ) );
}
public function scripts() {
wp_register_script( 'filter', 'assets/js/filter.js', array( 'jquery' ), null, true );
wp_enqueue_script( 'filter' );
wp_localize_script( 'filter', 'filter', array(
'ajaxurl' => admin_url( 'admin-ajax.php' ),
'loadmore_nonce' => wp_create_nonce( 'loadmore_nonce' )
) );
}
public function loadmore() {
if ( ! check_ajax_referer( 'loadmore_nonce', 'loadmore_nonce', false ) )
exit;
@header( 'Content-Type: application/json' );
echo json_encode( array(
'foo' => 'bar'
) );
exit;
}
}
在我的JS文件中,我写了以下内容:
$('#loadmore a').on('click', function(e) {
e.preventDefault();
$.ajax({
type: 'POST',
dataType: 'json',
url: filter.ajaxurl,
data: {
'action': 'loadmore',
'loadmore_nonce': filter.loadmore_nonce
},
success: function (response) {
console.log(response);
}
});
});
AJAX成功回调始终返回0
0来自死(' 0');在admin-ajax.php文件的末尾