2016-01-30 28 views
1

隨着WordPress的你有好/壞的插件,有些比其他更經濟。通過經濟我的意思是,他們只調用該功能所需的CSS和JavaScript時,頁面加載啓用該功能。其他人不會歧視並在所有頁面上調用代碼。這可能會對頁面加載速度/性能產生負面影響。WordPress的插件 - 如何禁用每頁js/css

我有一些插件在CSS中很沉重,並且滿載着jQuery/Javascript文件 - 我只希望它們在特定頁面(不在家中)啓用。手裏有我的頁面ID和別名。查看插件文件夾我也看到包含所有JS/CSS的主要php文件。在那個文件中,我嘗試了類似is_page()的方法,但似乎沒有影響,就好像is_page尚未設置。

<?php if (is_page('3486')) { exit; } ?> 

退出一行自己殺死指示腳本被調用的頁面。

的問題,「如何以及在何處放置一個if語句,這將阻止插件的CSS/JavaScript的被呼籲所有的網頁,但特定的一個(或者頁面數組)?

我可以命名插件,但真正的問題是更通用於任何插件

回答

2

您可以使用wp_deregister_script,這將刪除不需要的JS,從特定的網頁CSS

add_action('wp_print_scripts', 'my_deregister_javascript', 100); 

function my_deregister_javascript() 
{ 
    if (is_page('YOUR PAGE NAME')) 
     { 
     wp_deregister_script('WORDPRESS JS file NAME'); 
     } 
} 

參考:。https://codex.wordpress.org/Function_Reference/wp_deregister_script

+0

使用描述的功能,它可以識別頁面,很好。在特定的插件中有20多個js電話。但是,如果我將wp_deregister添加到特定文件,如'wp_deregister_script(「allinone_bannerWithPlaylist.js」);'該行被忽略,意味着不註銷。我嘗試了單個滴答,放棄.js後綴等,但它沒有區別。看看函數引用,我複製了這個例子逐字,'wp_deregister_script('jquery');'並且它的作用是禁用所有的.js行。我不明白我是否弄錯了語法或其他。 –

+0

好吧我明白了。我不明白.js文件如何被調用,命名約定,並假定.js文件名應該工作。我查看了插件文件以及與排隊相關的特定名稱,看到了一些類似'jquery-ui-accordion','jquery-ui-draggable'和'lbg-all_in_one_bannerWithPlaylist'。一旦我將取消註冊更改爲它的工作名稱。 'wp_deregister_script(「lbg-all_in_one_bannerWithPlaylist」);'=好。太多了。 –