Wordpress:我的img在javascript文件中的路径

时间:2018-02-09 18:09:58

标签: javascript php jquery wordpress path

我知道在wordpress(functions.php)中注册javascript文件是一种好习惯。但这究竟是怎么做到的?

我过去常常这样做:

<script src="js/jquery-3.2.1.min.js"></script>
<script src="js/script.js"></script>

然后在我的script.js文件中我有两行代码:

var openmenu = "assets/menu.svg";
var closemenu = "assets/close-menu.svg";

但是,当我在网上移动我的wordpress网站时,svg不会加载。我知道它与wp_enqueue_script有关,但我似乎无法弄清楚究竟是什么......

非常感谢!

1 个答案:

答案 0 :(得分:0)

首先你要注册你的脚本,就像这样(关于你的主题&function; .php)

add_action('wp_enqueue_scripts', function(){
    wp_register_script('my-script', get_stylesheet_directory_uri() .'/js/my-script.js', array('jquery'), '3.14', true );
});

其中:

  • 'my-script'是您脚本的ID(无论您想要什么)
  • get_stylesheet_directory_uri() .'/js/my-script.js'它是您脚本的完整网址
  • array('jquery')是脚本的依赖项 - 如果没有依赖项,只需使用空array()。如果您要添加的新脚本取决于之前注册的'my-script'(或您使用的任何&#34; ID&#34;),则可以使用array('jquery', 'my-script')
  • '3.14'它是您脚本的版本号
  • true表示脚本可以加载到页脚上(更适合页面加载速度)

然后,使用&#34; id&#34;排队的剧本:

add_action('wp_enqueue_scripts', function(){
    wp_register_script('my-script', get_stylesheet_directory_uri() .'/js/my-script.js', array('jquery'), '3.14', true );
    wp_localize_script('my-script', 'MyScript', array(
        'foo' => 'bar',
        'stuff' => get_option('quick_brown_fox'),
        'menu' => get_template_directory_uri() .'/img/menu.svg',
        'close_menu' => get_template_directory_uri() .'/img/close_menu.svg'
    ));
});

这样,每当你加载&#34; my-script&#34;脚本,WordPress将创建一个&#34; MyScript&#34; javascript global,您可以在以后使用js文件获取该值。

所以,在你的js上,现在你可以使用:

var closeMenuImgPath = MyScript.close_menu;