将wordpress template_directory_uri()传递给acf-maps.js

时间:2014-03-18 10:55:44

标签: javascript php wordpress google-maps-api-3 advanced-custom-fields

我似乎无法解决这个问题。

我将Wordpress与高级自定义字段和自定义帖子类型结合使用,以便显示包含与这些自定义帖子类型相关联的位置的地图。

我正在使用MarkerClusterer并想为其自定义图标,并且不想对图像的路径进行硬编码。

我知道我应该使用wp_localize,但不知道该怎么做。

我的主题文件夹中有一个functions.php文件,我认为我必须将template_directory_uri()作为变量传递。

我的主题文件夹中有一个需要读取该变量的/js/acf_maps.js,而不是在js文件中对此进行硬编码:

url: 'http://mysite/wp-content/themes/mytheme/img/clustercustomicon.png'

我想要

http://mysite/wp-content/themes/mytheme/

作为变量传递,仅添加自定义图标的相对路径。

希望这是有道理的。 谢谢。

2 个答案:

答案 0 :(得分:1)

如果您创建一个全局javascript变量,您将能够在其他js文件中访问它

var theme_url = '<?php echo template_directory_uri(); ?>';

并在js文件中,

var icon = window.theme_url+'/img/clustercustomicon.png';

答案 1 :(得分:1)

我更喜欢使用wp_localize_script传递变量。

$array['theme_url'] = template_directory_uri();
wp_localize_script( 'enqueue_handle', 'variable', $array);

然后在javascript中使用variable.theme_url访问变量。

http://codex.wordpress.org/Function_Reference/wp_localize_script