我知道在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有关,但我似乎无法弄清楚究竟是什么......
非常感谢!
答案 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;