我需要在javascript文件中动态显示主题文件的图像路径。我该怎么办?
address.forEach(function(address){
var markerGeoCoder;
markerImage = {url: window.mr_variant == undefined ? \'img/mapmarker.png\' : \'../img/mapmarker.png\', size: new google.maps.Size(50,50), scaledSize: new google.maps.Size(50,50)};
if(/(\\-?\\d+(\\.\\d+)?),\\s*(\\-?\\d+(\\.\\d+)?)/.test(address) ){
var latlong = address.split(\',\'),
marker = new google.maps.Marker({
position: { lat: 1*latlong[0], lng: 1*latlong[1] },
map: map,
icon: markerImage,
title: markerTitle,
optimised: false
});
}
我已经试过了:
address.forEach(function(address){
var markerGeoCoder;
markerImage = {url: window.mr_variant == undefined ? \'<?php the_field(\'img/mapmarker.png\'); ?>\' : \'../img/mapmarker.png\', size: new google.maps.Size(50,50), scaledSize: new google.maps.Size(50,50)};
if(/(\\-?\\d+(\\.\\d+)?),\\s*(\\-?\\d+(\\.\\d+)?)/.test(address) ){
var latlong = address.split(\',\'),
marker = new google.maps.Marker({
position: { lat: 1*latlong[0], lng: 1*latlong[1] },
map: map,
icon: markerImage,
title: markerTitle,
optimised: false
});
}
但它不起作用。
SO网友:Jacob Peattie
如果你在JS中,就不能使用PHP(<?php ?>
), 您需要另一种方法将PHP变量导入JS。WordPress的正常使用方法是wp_localize_script()
.
wp_localize_script( \'wpse_274344\', \'myScriptObject\', array(
\'markerImageUrl\' => get_theme_file_uri( \'/img/mapmarker.png\' ),
) );
在调用后添加该代码
wp_enqueue_script()
或
wp_register_script()
. 代替
wpse_274344
使用脚本排队时使用的名称。
这意味着WordPress将输出一个名为myScriptObject
到包含传递给的值的页面wp_localize_script()
.
然后在脚本文件中,您可以访问markerImageUrl
像这样:
markerImage = {
url: window.myScriptObject.markerImageUrl
}