我正在使用Class制作插件,我需要在前端运行一些Ajax。所有脚本都正确排队。当我触发呼叫时,出现400错误。
class CCYTFeatured {
public function __construct(){
add_action( 'wp_enqueue_scripts', array($this, 'cc_yt_scripts' ));
add_action( 'wp_ajax_cc_get_featured_yt', array( $this, 'cc_get_featured_yt' ) );
add_action( 'wp_ajax_nopriv_cc_get_featured_yt', array( $this, 'cc_get_featured_yt' ) );
}
public function cc_yt_scripts() {
// JAVASCRIPT
wp_register_script( 'cc_yt_script',
plugins_url( '/js/cc_yt.js', __FILE__ ),
array('jquery'),
cc_yt_version(),
true
);
wp_localize_script(
'cc_yt_script',
'cc_yt_ajax',
array(
'ajax_url' => admin_url( 'admin-ajax.php' )
)
);
wp_enqueue_script('cc_yt_script');
}
public function cc_get_featured_yt(){
echo 'SUCCESS!';
die();
}
我的ajax调用是:
function start_yt(){
jQuery('#cc_yt_light_wrap').show();
// REGISTER NEW ENTRY USING AJAX
jQuery.ajax({
url: cc_yt_ajax.ajax_url,
type: 'POST',
data: {
action : 'cc_get_featured_yt',
},
async: true,
success: function(response) {
console.log(response);
}
});
}
感谢您的帮助! X)
答案 0 :(得分:0)
尝试一下:
将方法名称从cc_get_featured_yt
更改为get_featured
,并在类中的所有位置更改方法名称。
然后在ajaxcall中输入以下代码:
data: {
action : 'featured_yt',
}
我认为方法名中的get
是一个关键字。这对我有用。
答案 1 :(得分:0)
代码还可以,
我上课的方式是错误的。
我在主题中称呼它。相反,我创建了一个新方法并将所有内容都从__construct()中移出。
开始我的课程,并在插件文件中调用方法。在我再次开始上课之后,只在主题内调用了所需的方法。工作完美。