我需要将php文件(位于主题中的文件夹中)的路径传递到管理区域中使用的JS文件,但我不知道如何实现这一点。
我想做的是构建一个页面,在其中选择表单中的一些选项将通过ajax将输入值传递给php脚本。但由于JS是客户端,我不知道如何指向正确的位置。
我尝试使用以下方法进行测试:
<?php
wp_enqueue_script( \'some_handle\' );
$translation_array = array( \'some_string\' => __( \'Some string to translate\' ), \'a_value\' => \'10\' );
wp_localize_script( \'some_handle\', \'object_name\', $translation_array );
wp_enqueue_script("admin", $adminDir."js/admin.js", false, "1.0");
?>
在我的管理中。js公司:
console.log(object_name.some_string);
但控制台只是显示:
ReferenceError: object_name is not defined
SO网友:gmazzap
如果您想使用来自管理的变量。js脚本,您要确保它正常工作,您必须
用作手柄wp_localize_script
必须使用数据调用的脚本句柄wp_localize_script
after 该脚本已排队
wp_enqueue_script( \'some_handle\' );
wp_enqueue_script("admin", $adminDir."js/admin.js", false, "1.0");
$translation_array = array( \'some_string\' => __( \'Some string to translate\' ), \'a_value\' => \'10\' );
wp_localize_script( \'admin\', \'object_name\', $translation_array );
使用上述代码和
console.log(object_name.some_string);
您将在控制台上看到翻译后的字符串。
了解更多信息wp_localize_script
在Codex上。
SO网友:Konsole
您可以先注册脚本,然后将其排队wp_localize_script
.
wp_register_script( \'script_handle\', $adminDir."js/admin.js", false, \'1.0\' ); //register script
$translation_array = array( \'some_string\' => __( \'Some string to translate\' ), \'a_value\' => \'10\' );
wp_localize_script( \'script_handle\', \'object_name\', $translation_array );
wp_enqueue_script("script_handle"); //enqueue
功能参考:
wp_localize_script