使用Roots.io开发时,AJAX未在WordPress中调用操作

时间:2018-08-20 21:16:31

标签: ajax wordpress roots-sage

这是我在setup.php中的代码:

add_action('wp_enqueue_scripts', function () {
    wp_enqueue_style('sage/main.css', asset_path('styles/main.css'), false, null);
    wp_enqueue_script('sage/main.js', asset_path('scripts/main.js'), ['jquery'], null, true);

    // AJAX Setup
    if ( is_search() ) {   
        wp_enqueue_script('ajax', asset_path('scripts/ajax.js'), ['jquery'], null, true);
    }

    wp_localize_script( 'ajax', 'ajaxObject', array(
        'ajax_url' => admin_url( 'admin-ajax.php' )
    ) );

, 100);

在我的ajax.js中:

jQuery(document).ready( function($) {
    $(".toBeClicked").on('click', function() {
        jQuery.ajax({
            type: 'POST',
            url: ajaxObject.ajax_url,
            data: { action: "get_newData", newData: 'New data' },
            success: function() {
                console.log("success");
            },
        });
    });
})

最后,在我的functions.php中:

// Define a variable that will store data from AJAX
$GLOBALS['newData'] = null;
function get_newData() {
    $GLOBALS['newData'] = $_POST['newData'];
    echo $GLOBALS['newData'];
    wp_die();
}
add_action( 'wp_ajax_get_newData', 'get_newData' );
add_action( 'wp_ajax_nopriv_get_newData', 'get_newData' );

现在,当我单击类为'toBeClicked'的元素时,控制台确实可以成功打印,但是我的函数get_newData没有得到执行。

设置此设置时,我是否缺少某些内容?另外,我的wp_ajax_ add_action函数是否在正确的文件中?

0 个答案:

没有答案