快速掌握WordPress中加载JavaScript脚本的方法


Posted in Javascript onDecember 17, 2015

在 WordPress 中加载脚本(为 CSS 和 JS,下同)文件,大多数人的做法是直接在 header.php 文件中添加 link 标签,或者把 link 标签通过 wp_head 钩子直接添加到 head 标签里,这种做法是不符合官方规范的。

标准的脚本加载方式应该是使用 WordPress 官方提供的函数(后边会说),统一标准有几个好处,首先就是更加安全和利于管理,其次是更加的方便快捷,而且不仅主题能挂载脚本,插件也可以,并且还能管理脚本,并且调整挂载顺序和位置和其它内容。

在哪个钩子加载?

在调用加载脚本函数之前,我们首先要确定函数在哪个钩子处执行,有四个常用的脚本加载钩子,分别是 wp_enqueue_scripts(在前台加载)、admin_enqueue_scripts(在后台加载)、login_enqueue_scripts(在登录页加载)和 init(全局加载)。

最常用的应该是 wp_enqueue_scripts 了,挂载到这上面,脚本只在前台加载。

加载 JavaScript 脚本

比如说我想在前台加载一个 JS,是主题根目录 JS 文件夹的 themes.js 文件。首先需要使用 wp_register_script() 函数把 JS 添加到脚本库里边(注册脚本),然后再使用 wp_enqueue_script() 函数挂载脚本。

function Bing_enqueue_scripts(){
  wp_register_script( 'themes_js', get_bloginfo( 'template_directory' ) . '/js/themes_js.js' );//注册 ID 为 themes_js 的 JS 脚本
  wp_enqueue_script( 'themes_js' );//挂载脚本
}
add_action( 'wp_enqueue_scripts', 'Bing_enqueue_scripts' );

加载 CSS 脚本

function Bing_enqueue_scripts(){
  wp_register_style( 'style', get_bloginfo( 'template_directory' ) . '/style.css' );
  wp_enqueue_style( 'style' );
}
add_action( 'wp_enqueue_scripts', 'Bing_enqueue_scripts' );

小结

本文只是非常简单的讲解了怎么加载脚本,合理的利用脚本排队机制,可以让程序变得灵活,也可以加快效率。

Javascript 相关文章推荐
学习ExtJS(一) 之基础前提
Oct 07 Javascript
JS获取dom 对象 ajax操作 读写cookie函数
Nov 18 Javascript
javascript验证身份证完全方法具体实现
Nov 18 Javascript
jQuery之过滤元素操作小结
Nov 30 Javascript
JavaScript中如何通过arguments对象实现对象的重载
May 12 Javascript
js使用for循环查询数组中是否存在某个值
Aug 12 Javascript
JavaScript类型系统之Object详解
Jan 07 Javascript
AngularJS实现标签页的两种方式
Sep 05 Javascript
js仿搜狐视频记录片列表展示效果
May 30 Javascript
微信小程序 列表的上拉加载和下拉刷新的实现
Apr 01 Javascript
javaScript中"=="和"==="的区别详解
Mar 16 Javascript
vue-cli 2.*中导入公共less文件的方法步骤
Nov 22 Javascript
JSONObject使用方法详解
Dec 17 #Javascript
JS实现alert中显示换行的方法
Dec 17 #Javascript
JavaScript中Function函数与Object对象的关系
Dec 17 #Javascript
jQuery实现进度条效果代码
Dec 17 #Javascript
JavaScript创建对象的方式小结(4种方式)
Dec 17 #Javascript
javascript日期格式化方法小结
Dec 17 #Javascript
javascript中Date format(js日期格式化)方法小结
Dec 17 #Javascript
You might like
2020显卡排行榜天梯图 显卡天梯图2020年3月最新版
2020/04/02 数码科技
VOLVO车载收音机
2021/03/02 无线电
php操作redis缓存方法分享
2015/06/03 PHP
Symfony控制层深入详解
2016/03/17 PHP
PHP中的密码加密的解决方案总结
2016/10/26 PHP
jquery.cookie用法详细解析
2013/12/18 Javascript
JS版的date函数(和PHP的date函数一样)
2014/05/12 Javascript
node.js中的fs.readFile方法使用说明
2014/12/15 Javascript
jQuery中delegate()方法用法实例
2015/01/19 Javascript
jQuery实现简单的间隔向上滚动效果
2015/03/09 Javascript
深入理解JS addLoadEvent函数
2016/05/20 Javascript
微信小程序 登录实例详解
2017/01/16 Javascript
jQuery基于ajax实现页面加载后检查用户登录状态的方法
2017/02/10 Javascript
整理关于Bootstrap导航的慕课笔记
2017/03/29 Javascript
微信小程序上传多图到服务器并获取返回的路径
2019/05/05 Javascript
vue动态路由:路由参数改变,视图不更新问题的解决
2019/11/05 Javascript
vue-router 按需加载 component: () => import() 报错的解决
2020/09/22 Javascript
[01:34]DAC2018主赛事第四日五佳镜头 Gh巨牙海民助Miracle-死里逃生
2018/04/07 DOTA
Python BeautifulSoup中文乱码问题的2种解决方法
2014/04/22 Python
Python 列表(List) 的三种遍历方法实例 详解
2017/04/15 Python
python 中字典嵌套列表的方法
2018/07/03 Python
Python+OpenCV目标跟踪实现基本的运动检测
2018/07/10 Python
django+mysql的使用示例
2018/11/23 Python
python+logging+yaml实现日志分割
2019/07/22 Python
Django之PopUp的具体实现方法
2019/08/31 Python
keras模型保存为tensorflow的二进制模型方式
2020/05/25 Python
python中tkinter窗口位置\坐标\大小等实现示例
2020/07/09 Python
filter使用python3代码进行迭代元素的实例详解
2020/12/03 Python
详解Html5 Canvas画线有毛边解决方法
2018/03/01 HTML / CSS
几道PHP的面试题
2012/05/19 面试题
食品安全承诺书
2014/05/22 职场文书
市场营销毕业求职信
2014/08/07 职场文书
交通肇事罪辩护词
2015/05/21 职场文书
党纪处分决定书
2015/06/24 职场文书
2019消防宣传标语!
2019/07/10 职场文书
html+css 实现简易导航栏功能
2021/04/07 HTML / CSS