減少 WordPress AVADA主題功能腳本載入的方法

AVADA是 WordPress的付費主題中,銷路一直很好的主題,我自己也買了兩套來使用;功能很完善,讓一般人真的不用學習特別的技能,就可以輕鬆地完成網頁。

但是 AVADA的功能這麼多,也有一個缺點:略為肥大。相對於最近興起的 Elementor等,搭配輕量化的其他主題,AVADA真的會載入非常多的腳本,導致請求數非常高,下面提到的就是讓 AVADA的腳本可以減少的方法。

不是把 AVADA功能關掉就好了嗎?

在 AVADA的組件 Fusion Builder的 Setting中你可以關閉 Fusion Builder Elements,但是很可惜的是儘管你在這裡關閉了沒有使用到的元件,它們相關的腳本還是會在你的網站上載入。根據官方的說法是,這些組件有相依性所以即使關閉了,也只是讓你在編輯的時候不會出現,前台還是會讀取的。(很多人在論壇上提到希望官方切開可以像 OceanWP那樣自由選擇,不過短時間看起來大概還沒有譜)

Enable JS Compiler 有用嗎?

在 AVADA的 Theme Options中,你可以在 Performance裡找到 Enable JS Compiler的功能。開啟這個功能會幫你把這一大堆的腳本結合成一個腳本,這麼做會讓你的請求數從數十個變成一個,對於不支援 HTTP/2 的伺服器(網站)很有用,也可以讓你的 PageSpeed等網站測速評分變好看! (測試你的網站有 HTTP/2嗎)

對,特別注意到,如果你的伺服器(網站)支援 HTTP/2 ,那麼你不應該啟用這個功能,這反而會讓你的效能下降!這是因為 HTTP/2的請求方式不同了,不結合才是對的!

也許你會想到那 PageSpeed怎麼辦?這裡你需要知道的是,這些測速網站不會用 HTTP/2去讀取你的網站,所以這個地方評分本來就會降低或是出現叫你減少請求數的建議。

到這裡也許你已經準備好了,打算要這麼做了,就跟著下面的步驟吧!

減少 WordPress AVADA主題功能腳本載入

1. 進入 WordPress後台 > 外觀 > 佈景主題編輯器

2. 點選右側的 functions.php

備註:如果不想編輯 functions.php,也可以用 Code Snippets 這個免費而且有中文化的外掛。

3. 貼入以下的程式碼,並按下更新檔案

藍色這個地方為例,你可以看到這邊和你從 Fusion Builder Elements 關掉的是類似的名稱,因此你可以參考 Fusion Builder Elements關了那些來確認要停止載入或保留那些腳本。
要保留的腳本就該行在前面加上 // 就可以了。原本就已經加上 //的則是不建議移除的腳本。

4. 更新檔案後,你可以去前台按下 F12叫出 Developer Tools 切換到 Network頁面,然後重新整理網頁,就會發現 Request請求數減少囉。

正如同 AVADA提到的,它們的功能間有相依性,因此當你停止載入某些腳本後,其他功能可能會略有問題,所以這是一個漫長的測試過程啊!才能確認出那些腳本在網站上確認是可以不要載入的。

add_action( ‘wp_enqueue_scripts’, ‘custom_disable_theme_js’ );

function custom_disable_theme_js() {
Fusion_Dynamic_JS::deregister_script(‘avada-comments‘);
Fusion_Dynamic_JS::deregister_script(‘avada-general-footer’);
Fusion_Dynamic_JS::deregister_script(‘avada-mobile-image-hover’);
Fusion_Dynamic_JS::deregister_script(‘avada-quantity’);
Fusion_Dynamic_JS::deregister_script(‘avada-scrollspy’);
Fusion_Dynamic_JS::deregister_script(‘avada-select’);
Fusion_Dynamic_JS::deregister_script(‘avada-sidebars’);
Fusion_Dynamic_JS::deregister_script(‘avada-tabs-widget’);

Fusion_Dynamic_JS::deregister_script(‘bootstrap-collapse’);
Fusion_Dynamic_JS::deregister_script(‘bootstrap-modal’);
Fusion_Dynamic_JS::deregister_script(‘bootstrap-popover’);
Fusion_Dynamic_JS::deregister_script(‘bootstrap-scrollspy’);
Fusion_Dynamic_JS::deregister_script(‘bootstrap-tab’);
Fusion_Dynamic_JS::deregister_script(‘bootstrap-tooltip’);
Fusion_Dynamic_JS::deregister_script(‘bootstrap-transition’);

Fusion_Dynamic_JS::deregister_script(‘cssua’);

Fusion_Dynamic_JS::deregister_script(‘fusion-alert’);
Fusion_Dynamic_JS::deregister_script(‘fusion-blog’); // !
Fusion_Dynamic_JS::deregister_script(‘fusion-button’); // !
Fusion_Dynamic_JS::deregister_script(‘fusion-carousel’);
Fusion_Dynamic_JS::deregister_script(‘fusion-chartjs’);
Fusion_Dynamic_JS::deregister_script(‘fusion-column-bg-image’);
Fusion_Dynamic_JS::deregister_script(‘fusion-count-down’);
Fusion_Dynamic_JS::deregister_script(‘fusion-equal-heights’);
Fusion_Dynamic_JS::deregister_script(‘fusion-flexslider’);
Fusion_Dynamic_JS::deregister_script(‘fusion-image-before-after’);
Fusion_Dynamic_JS::deregister_script(‘fusion-lightbox’);
Fusion_Dynamic_JS::deregister_script(‘fusion-parallax’); // !
Fusion_Dynamic_JS::deregister_script(‘fusion-popover’);
Fusion_Dynamic_JS::deregister_script(‘fusion-recent-posts’);
Fusion_Dynamic_JS::deregister_script(‘fusion-sharing-box’);
Fusion_Dynamic_JS::deregister_script(‘fusion-syntax-highlighter’);
Fusion_Dynamic_JS::deregister_script(‘fusion-title’);
Fusion_Dynamic_JS::deregister_script(‘fusion-tooltip’);
Fusion_Dynamic_JS::deregister_script(‘fusion-video-bg’);
Fusion_Dynamic_JS::deregister_script(‘fusion-video-general’);
Fusion_Dynamic_JS::deregister_script(‘fusion-waypoints’);

Fusion_Dynamic_JS::deregister_script(‘images-loaded’); // !
Fusion_Dynamic_JS::deregister_script(‘isotope’); // !!

Fusion_Dynamic_JS::deregister_script(‘jquery-appear’);
Fusion_Dynamic_JS::deregister_script(‘jquery-caroufredsel’);
Fusion_Dynamic_JS::deregister_script(‘jquery-count-down’);
Fusion_Dynamic_JS::deregister_script(‘jquery-count-to’);
Fusion_Dynamic_JS::deregister_script(‘jquery-easy-pie-chart’);
Fusion_Dynamic_JS::deregister_script(‘jquery-event-move’);
Fusion_Dynamic_JS::deregister_script(‘jquery-fade’); // !!
Fusion_Dynamic_JS::deregister_script(‘jquery-fitvids’);
Fusion_Dynamic_JS::deregister_script(‘jquery-fusion-maps’);
Fusion_Dynamic_JS::deregister_script(‘jquery-hover-flow’);
Fusion_Dynamic_JS::deregister_script(‘jquery-hover-intent’);
Fusion_Dynamic_JS::deregister_script(‘jquery-infinite-scroll’); // !
Fusion_Dynamic_JS::deregister_script(‘jquery-lightbox’);
Fusion_Dynamic_JS::deregister_script(‘jquery-mousewheel’); // !
Fusion_Dynamic_JS::deregister_script(‘jquery-placeholder’);
Fusion_Dynamic_JS::deregister_script(‘jquery-request-animation-frame’);
Fusion_Dynamic_JS::deregister_script(‘jquery-sticky-kit’);
Fusion_Dynamic_JS::deregister_script(‘jquery-to-top’);
Fusion_Dynamic_JS::deregister_script(‘jquery-touch-swipe’); // !
Fusion_Dynamic_JS::deregister_script(‘jquery-waypoints’); // !

Fusion_Dynamic_JS::deregister_script(‘lazysizes’);
Fusion_Dynamic_JS::deregister_script(‘packery’); // !!
Fusion_Dynamic_JS::deregister_script(‘vimeo-player’);

// Fusion_Dynamic_JS::deregister_script(‘jquery-easing’);
// Fusion_Dynamic_JS::deregister_script(‘modernizr’);
// Fusion_Dynamic_JS::deregister_script(‘fusion-testimonials’);
// Fusion_Dynamic_JS::deregister_script(‘jquery-cycle’); // !
// Fusion_Dynamic_JS::deregister_script(‘jquery-flexslider’); // !

}