在WordPress插件中引用JavaScript中的文件

时间:2015-10-25 作者:Placid

我的插件中有一个JavaScript文件,当在任何前端页面中单击任何链接时,我需要引用一个声音文件来播放。

我是这样做的:

my\\u插件/my\\u插件。php

function pr_add_link_sound () {
  wp_register_script(\'add_sound\', plugins_url(\'add_sound.js\', __FILE__), [\'jquery\'], \'\', true);
  wp_enqueue_script(\'add_sound\');
}
add_action(\'wp_enqueue_scripts\', \'pr_add_link_sound\');
my\\u插件/添加声音。js公司

(function($){
  var sound = new Audio(\'sound.mp3\');
  $(\'a\').on(\'click\', function(){
    sound.play();
  });
})(jQuery);
我添加了“声音”。我的插件根文件夹中的mp3文件如下:

my\\u插件/声音。mp3

但是js脚本中声音文件的引用不正确。我应该如何正确引用该文件?

1 个回复
最合适的回答,由SO网友:Abhik 整理而成

使用wp_localize_script.

function pr_add_link_sound () {

//Register the script first
wp_register_script(\'add_sound\', plugins_url( \'add_sound.js\', __FILE__ ), array(\'jquery\'), \'\', true);

//Localize the sound file url to use in the script
$args = array(
    \'sound1\' => plugins_url( \'sound.mp3\', __FILE__ ),
);
wp_localize_script( \'add_sound\', \'PRSound\', $args );

//Enqueue the script
wp_enqueue_script(\'add_sound\');

}  
您可以像这样引用js文件中的声音。。

(function($){
  var sound = new Audio( PRSound.sound1 );
  $(\'a\').on(\'click\', function(){
    sound.play();
  });
})(jQuery);