快速掌握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 相关文章推荐
JavaScript-RegExp对象只能使用一次问题解决方法
Jun 23 Javascript
jQuery中offsetParent()方法用法实例
Jan 19 Javascript
JS实现带缓冲效果打开、关闭、移动一个层的方法
May 09 Javascript
使用AngularJS中的SCE来防止XSS攻击的方法
Jun 18 Javascript
详解AngularJS实现表单验证
Dec 10 Javascript
ion content 滚动到底部会遮住一部分视图的快速解决方法
Sep 06 Javascript
基于vue2框架的机器人自动回复mini-project实例代码
Jun 13 Javascript
js中的闭包学习心得
Feb 06 Javascript
vue中axios解决跨域问题和拦截器的使用方法
Mar 07 Javascript
Vue最新防抖方案(必看篇)
Oct 30 Javascript
uin-app+mockjs实现本地数据模拟
Aug 26 Javascript
详解Vue的mixin策略
Nov 19 Vue.js
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
php面向对象值单例模式
2016/05/03 PHP
php while循环控制的简单实例
2016/05/30 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
2016/11/18 PHP
PHP实现随机发扑克牌
2020/04/22 PHP
jQuery 使用手册(四)
2009/09/23 Javascript
jquery设置元素的readonly和disabled的写法
2013/09/22 Javascript
JS获取文本框,下拉框,单选框的值的简单实例
2014/02/26 Javascript
Node.js 异步编程之 Callback介绍(一)
2015/03/30 Javascript
JS+DIV+CSS实现的经典标签切换效果代码
2015/09/14 Javascript
浅析Bootstrap验证控件的使用
2016/06/23 Javascript
jQuery插件简单学习实例教程
2016/07/01 Javascript
AngularJs中Bootstrap3 datetimepicker使用实例
2016/12/13 Javascript
angular-ui-sortable实现可拖拽排序列表
2016/12/28 Javascript
解决ztree搜索中多级菜单展示不全问题
2017/07/05 Javascript
vue几个常用跨域处理方式介绍
2018/02/07 Javascript
js实现购物车功能
2018/06/12 Javascript
详解npm 配置项registry修改为淘宝镜像
2018/09/07 Javascript
vue-cli history模式实现tomcat部署报404的解决方式
2019/09/06 Javascript
vue滑动吸顶及锚点定位的示例代码
2020/05/10 Javascript
ssm+vue前后端分离框架整合实现(附源码)
2020/07/08 Javascript
微信小程序实现简单购物车功能
2020/12/30 Javascript
[47:46]完美世界DOTA2联赛 Magma vs GXR 第三场 11.07
2020/11/10 DOTA
[42:48]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第二场 12.11
2020/12/16 DOTA
Python字符串切片操作知识详解
2016/03/28 Python
用python实现简单EXCEL数据统计的实例
2017/01/24 Python
python实现excel读写数据
2021/03/02 Python
python实现按长宽比缩放图片
2018/06/07 Python
Python进程,多进程,获取进程id,给子进程传递参数操作示例
2019/10/11 Python
入党自我评价优缺点
2014/01/25 职场文书
学校献爱心活动总结
2014/07/08 职场文书
手机被没收的检讨书
2014/10/04 职场文书
幼儿园见习报告范文
2014/10/30 职场文书
工程主管竞聘书
2015/09/15 职场文书
2019毕业典礼主持词!
2019/07/05 职场文书
Python OpenCV形态学运算示例详解
2022/04/07 Python
Ruby GDBM操作简介及数据存储原理
2022/04/19 Ruby