查看某个WordPress网站的源代码时你很可能会发现,网站使用的插件让代码中增加了很多javascript和css文件。 而大多数情况下并不是每个页面都需要这些文件,所以完全可以将这些文件从这个页面上清除。
例如,联系表单的样式文件和javascript文件只需要出现在表单实际显示的页面,而没有必要出现在其它任何页面。 或者像WP-PageNavi等插件的样式文件也可以放入到样式表中,而不必每次由插件独立加载。
尽管优化这些插件的脚本也需要花费一些时间,不过总体而言它的确值得我们这样做, 尤其是对规模稍大或流量较多的网站来说。 快速的页面加载能够给访问者带来良好的用户体验,减少带宽负载,甚至可能使搜索排名更进一步。
如果你的网站安装了以下任一插件,你就可以把下面对应的代码添加到functions.php文件里,以此清除或启用插件的样式文件与javascript文件。
Contact Form 7插件
// Add the Contact Form 7 scripts only on the contact page
function deregister_cf7_js() {
if ( !is_page('contact')) {
wp_deregister_script( 'contact-form-7');
}
}
add_action( 'wp_print_scripts', 'deregister_cf7_js' );
function deregister_ct7_styles() {
wp_deregister_style( 'contact-form-7');
}
add_action( 'wp_print_styles', 'deregister_ct7_styles');
cForms插件
cForms插件允许用户对插件将要加载的脚本的所在页面进行设置。 下面的代码能够达到更好的加载效果。
// Load cForms scripts only on the contact page
function deregister_cforms() {
if (!is_page('contact')) {
remove_action('wp_head','cforms_style');
}
}
add_action( 'wp_print_scripts', 'deregister_cforms');
Page Navi插件
注意:PageNavi的管理界面上有一个禁用默认样式的的选项。因此你可能只需要删除PageNavi的css文件并把它添加到网站的样式表就可以了。
// Remove PageNavi CSS on all pages
function deregister_styles() {
wp_deregister_style( 'wp-pagenavi' );
}
add_action( 'wp_print_styles', 'deregister_styles');
Codebox插件
// Remove Codebox styles on all pages
function childtheme_deregister_styles() {
wp_deregister_style( 'wp-pagenavi' );
wp_deregister_style( 'codebox' );
}
add_action( 'wp_print_styles', 'childtheme_deregister_styles' );
Post Tabs插件
// Remove the Post Tabs scripts except for on selected page
function deregister_postTabs_addJS() {
if (!is_page('page-slug')) {
wp_deregister_script( 'postTabs');
}
}
add_action( 'wp_print_scripts', 'deregister_postTabs_addJS', 200);
remove_action('wp_head','postTabs_addCSS');
Calendar插件
// Apply Calendar CSS and Scripts Conditionally
function deregister_calendar() {
if (!is_page('calendar')) {
remove_action('wp_head', 'calendar_wp_head');
}
}
add_action( 'wp_print_scripts', 'deregister_calendar');
原文:Optimize Plug-in Scripts for WordPress
上一篇 正则表达式元字符