WordPress 主题最佳引用 js 文件的方法是使用 WordPress 内置的 wp_enqueue_script()
函数,通过该函数可以安全地将javascript 代码加入到 WordPress 创建的页面中,不仅可以最大限度地保证兼容性,还是提高 WordPress 性能效率的一个方法。
语法结构
<?php wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer ); ?>
参数
- ⭕$handle – 调用的脚本名称,用于区别其它js,因此不能和其它js文件命名相同。
- ⭕$src – js文件的路径(即url),不要直接使用域名url,要使用路径函数,如parent theme使用get_template_directory_uri,child theme使用get_stylesheet_directory_uri。
- ⭕(WP模板路径相关的函数中,通常带有template的是指parent theme,带有stylesheet的指向child theme)
- ⭕$deps – 依赖关系,加载的js文件所依存的其它js的标识字串数组(array:string),即需要在本代码之前加载的代码的名称
- ⭕(如js脚本依赖jquery库,那么这里要用数组的形式写上jquery),非必需。
- ⭕$ver – 加载js文件的版本号,作为查询字串附加在路径的末尾,作用是确保正确的版本信息传递给了客户端,以免受到缓存的影响
- ⭕(如js脚本发生变化时,通过更改版本号可以强制客户浏览器更新缓存),默认为false,调用当前wordpress程序的版本号,如果不想显示,则设置为NULL(不推荐)。
- ⭕$in_footer – boolean类型,设置js文件调用代码是否放置在html底部,设置为ture则放在底部,设置为false则放置在head部分。提示需要模板正确放置wp_footer()函数。
通过 wp_enqueue_script 函数加载 js 文件时,应该将它分配给一个钩子,如只在前台调用,使用钩子 wp_enqueue_scripts
;只在后台调用,使用 admin_enqueue_scripts
。
只在前台调用
<?php function tone_front_script() { wp_enqueue_script( 'boot', get_template_directory_uri() . '/js/bootstrap.js'); } add_action( 'wp_enqueue_scripts', 'tone_front_script' ); ?>
只在后台调用
<?php function tone_admin_script() { wp_enqueue_script('boot', get_template_directory_uri() . '/js/bootstrap.js'); } add_action('admin_enqueue_scripts', 'tone_admin_script'); ?>
另外一种方法,使用 wp_head 钩子和 admin_head 钩子:
//为 WordPress 后台添加 css 和 js 代码 <?php function admin_jscss() { wp_enqueue_style( 'admin-myjscss', get_template_directory_uri() . '/css/bootstrap.css' ); wp_enqueue_script('admin-myjscss', get_template_directory_uri() . '/js/bootstrap.js' ); wp_enqueue_script( 'admin-myjscss', get_template_directory_uri() . '/js/jquery.min.js' ); } add_action('admin_head', 'admin_jscss'); ?>