[WordPress教程] 仅在特定的 WordPress 页面上按需加载 JavaScript -静鱼客栈

2021-09-27 0 557

在 WordPress 主题或插件中加载 JavaScript 时,官方推荐的方法是使用 wp_enqueue_script() 来加载,该函数可以指定 JavaScript 的依赖库,指定 JavaScript 文件的版本,设置在页面头部或者底部加载,非常灵活和方便。但是,该插件缺少指定在某些页面加载 JavaScript 的设置参数。所幸的是,我们可以通过 WordPress 的函数自己动手来实现这个功能。

为什么要在特定页面加载 JavaScript?

当一个比较大的库只在某一个或几个页面使用时,我们不需要在每个页面上加载所有脚本,而只需要在特定的页面模板中加载即可,以免其他页面加载不需要的 JavaScript 文件而影响页面打开速度,增加服务器开销。

比如,我们的主题中有一个名为“Portfolio Archive”的页面模板,在这个模板中,我们需要使用 “imagesloaded、masonry、isotope、jquery-ias” 这4个 JavaScript 插件来实现这个页面的效果,而这些库在其他页面都是用不上的,如果直接在全部页面加载,每个页面都会加载这4个库,即使是这个页面不需要使用这些库来实现效果。

只在使用了某个页面模板的页面上加载指定的 JavaScript 文件

在下面的代码中,首页我们加载了每个页面都需要的 jQuery 和 Main.js 文件,然后判断当前页面是否使用了指定的页面模板,然后根据判断结果加载指定页面模板需要的 JavaScript 文件。


//注册加载函数到 hook 上
add_action('wp_enqueue_scripts', 'my_theme_load_scripts');
 
// 加载样式和脚本
function my_theme_load_scripts(){
   wp_enqueue_script('jquery');

   // 加载每个页面都需要的 JavaScript 文件
   wp_enqueue_script('my_second_script', get_template_directory_uri() . '/js/main.js');
 
   if(is_page()){ //检查当前页面
      global $wp_query;
      // 插件是否使用了某页面模板
      $template_name = get_post_meta( $wp_query->post->ID, '_wp_page_template', true );
	  if($template_name == 'portfolio-archive.php'){
         // 如果使用了指定的页面模板,加载需要库
	     wp_enqueue_script('my_third_script', get_template_directory_uri() .'/js/imagesloaded.js');
         ...
	  }
   }
}

在实际的 WordPress 主题开发工作中,并不是每个主题都需要这么操作。如果某主题使用的 JavaScript 文件比较少,全部加载一起也没有多大,我们完全可以把这些 JavaScript 文件合并在一起文件中,这样不但可以减少页面请求数,还可以把脚本文件缓存到客户端,打开下一个页面的时候不用再下载一次。具体什么时候合并代码到一个文件,什么时候拆分代码按需加载,要看主题的实际情况,灵活确定。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝/QQ扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!305582964@qq.com
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有U点奖励和额外收入!

静鱼客栈 学习中心 [WordPress教程] 仅在特定的 WordPress 页面上按需加载 JavaScript -静鱼客栈 https://www.52jyu.cn/9380.html

静鱼客栈的帅逼站长~

常见问题
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP贵宾介绍。
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器没有下载完整造成的,可以重新进行下载即可~
查看详情

相关文章

发表评论
暂无评论
静鱼客栈-站长

为您解决烦忧 - 专业服务 看到消息会进行回复