Wordpress插件类设置Ajax

时间:2018-11-08 21:41:27

标签: javascript php ajax wordpress plugins

我正在使用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)

2 个答案:

答案 0 :(得分:0)

尝试一下: 将方法名称从cc_get_featured_yt更改为get_featured,并在类中的所有位置更改方法名称。 然后在ajaxcall中输入以下代码:

data: {
    action : 'featured_yt',
}

我认为方法名中的get是一个关键字。这对我有用。

答案 1 :(得分:0)

代码还可以,

我上课的方式是错误的。

我在主题中称呼它。相反,我创建了一个新方法并将所有内容都从__construct()中移出。

开始我的课程,并在插件文件中调用方法。在我再次开始上课之后,只在主题内调用了所需的方法。工作完美。