2016-09-26 51 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 –