将自定义脚本添加到函数文件

时间:2011-12-21 作者:greenbandit

向函数添加自定义脚本时遇到问题。php文件:

add_action(\'wp_print_scripts\', \'load_AJAX_URL__\');
function load_AJAX_URL__() {
    wp_localize_script( \'ajax_URL\', \'MyAjax\', array( \'ajaxurl\' => admin_url(\'admin-ajax.php\') ) );
}
为什么不工作?有什么想法吗?

2 个回复
最合适的回答,由SO网友:Kevin Langley Jr. 整理而成

功能wp_localize_script() 用于将变量发送到已注册和排队的脚本。您是否有一个已经注册和排队的js文件,并且具有“ajax\\u URL”句柄?如果没有,那么这就解释了为什么它不起作用。

此外,ajaxurl已经是一个js变量,可以通过您排队的任何脚本访问,所以我不太确定您在这里要做什么。

如果您只是想在主题中添加一个新的js文件,您需要查看wp_enqueue_script() 作用

SO网友:Joshua Abenazer

好的,你可以这样做。

function my_ajax_scripts() {
    $data = array( \'ajaxurl\' => admin_url(\'admin-ajax.php\') );
    wp_enqueue_script( \'ajax_url\', get_stylesheet_directory_uri() . \'/my-custom-ajax.js\' );
    wp_localize_script( \'ajax_url\', \'MyAjax\', $data );
    wp_enqueue_script( \'ajax_url_2\', get_stylesheet_directory_uri() . \'/my-custom-ajax-2.js\' );
    wp_localize_script( \'ajax_url_2\', \'MyAjax\', $data );
}
add_action( \'wp_enqueue_scripts\', \'my_ajax_scripts\' );
您需要先将脚本排队,然后使用wp_localize_script 使用特定js文件的句柄将变量传递给该文件。

结束