我通常在js脚本中使用wp\\u localize\\u脚本来启用ajax,如下所示
wp_localize_script( \'map-scripts\', \'ajax_info\', array( \'ajax_url\' => admin_url( \'admin-ajax.php\' ) ) );
但现在我发现使用wp\\u add\\u inline\\u脚本是最好的做法,我发现它更难使用。
我无法使用此方法传递数组。我尝试了以下方法,但看起来不一样:
$ajax_arr = array( \'ajax_url\' => admin_url( \'admin-ajax.php\' ) );
$ajax_json = json_encode($ajax_arr);
$ajax_info = \'ajax_info = \'.json_encode($ajax_json).\';\';
wp_add_inline_script( \'map-scripts\', $ajax_info, \'before\' );
你知道怎么做吗?
最合适的回答,由SO网友:Viktor Borítás 整理而成
如果还有人需要它:
wp_add_inline_script(
\'map-scripts\',
\'const ajax_info = \' . json_encode(array(
\'ajaxurl\' => admin_url(\'admin-ajax.php\'),
)),
\'before\'
);
但是,为了提高安全性,最好也使用nonce:
wp_add_inline_script(
\'map-scripts\',
\'const ajax_info = \' . json_encode(array(
\'ajaxurl\' => admin_url(\'admin-ajax.php\'),
\'nonce\' => wp_create_nonce(\'your_nonce_handler\'), //the more specific the better
\'your_other_item\' => "some additional data", //etc..
)),
\'before\'
);
https://developer.wordpress.org/reference/functions/wp_add_inline_script/