2016-09-26 13 views
0

我想加载大部分我的JavaScript异步加速渲染。可悲的是,推迟打破了我的WordPress网站的很多部分,我需要从异步加载中排除它。我的主题的一个文件是使用wordpress中的数据属性wp_register_script和pagespeed

wp_register_script('tie-masonry',  get_template_directory_uri() . '/js/isotope.js',   array('jquery'), false, true); 

的PageSpeed是需要的属性的代码数据的PageSpeed-NO-推迟 像<script data-pagespeed-no-defer>...</script>将它排除在外。

是否有可能将此属性添加到wp_register_script,还是我需要从PHP文件中排除它,并将其手动插入到网页?

+0

这可以帮助你http://wordpress.stackexchange.com/a/111882/101048 – mokiSRB

+0

谢谢。但是,这看起来非常复杂,如果将脚本仅包含在头部的属性中,速度会更快吗? – Deex

回答

3

由于4.1.0有一个过滤器钩子'script_loader_tag',它非常适合这项任务。

add_filter('script_loader_tag', 'my_script_loader_tag', 10 ,2); 
function my_script_loader_tag($tag, $handle){ 
    if ($handle == 'tie-masonry') { 
     return str_replace('<script', '<script data-pagespeed-no-defer', $tag); 
    } 
    return $tag;  
} 
+0

感谢Andy,如果我使用了很多这种钩子,这会对加载时间产生很大的影响吗? – Deex

+0

不用担心。这只是一个简单的过滤器钩子。查看源代码[here](https://developer.wordpress.org/reference/classes/wp_scripts/do_item/)Line 356 –