我如何将模板url传递到我的主题管理区域中的javascript?

时间:2013-10-04 作者:rugbert

我需要将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

2 个回复
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

结束

相关推荐