我有一个Wordpress插件文件结构,主文件夹是“myfolder”。此主文件夹中还有一个子文件夹名为“resources”。此资源文件夹中包含两个子文件夹:a)JS b.)images
在images文件夹中,我有一个图像“myimage.png”。在JS文件中,我有一个名为“myscript.JS”的脚本。
我想访问javascript文件“myscript.js”中images文件夹中的图像“myimage.png”。
我尝试了以下方法,但无效(无法解决):
<img src="../images/myimage.png">
<img src="images/myimage.png">
<img src="resources/images/myimage.png">
<img src="../resources/images/myimage.png">
<img src="myfolder/resources/images/myimage.png">
<img src="../myfolder/resources/images/myimage.png">
当然,绝对URL路径是可行的,但我希望此应用程序与其他网站配合使用,因此编码绝对URL路径不是可行的解决方案。
我知道Wordpress也有这个神奇的功能:
$myicons= plugins_url(\'resources/images/myimage.png\', __FILE__ );
但这只在PHP插件文件中起作用,我正在访问JS文件中的图像。如何在不重新排列当前文件结构的情况下实现这一点?Wordpress中是否有与“plugins\\u url”等效的JS函数?谢谢你的提示。
最合适的回答,由SO网友:Mateusz Hajdziony 整理而成
为此,您可以使用wp_localize_cript()
函数,如下所示:
function localize_my_script() {
$image_url = plugins_url( \'resources/images/myimage.png\', __FILE__ );
$localizations = array( \'imageURL\' => $image_url );
wp_localize_script( \'my-script-handle\', \'localizedVars\', $localizations );
}
add_action( \'wp_enqueue_scripts\', \'localize_my_script\' );
这是假设您已使用
my-script-handle
以句柄为例。