WordPress :把多说JS移到底部
多说插件默认是在 head 输出它的相关 JavaScript 脚本,但是有时候因为多说服务器不稳定的问题,会引起整个博客速度被拖累,另外按照 YSlow 或者 Google PageSpeed 等优化规则,最好也是要把 JavaScript 代码放到 footer,下面就介绍下如何把多说的 JavaScript 脚本移到 footer:
<?php
/*
Plugin Name: 把多说的 JavaScript 脚本移到 footer
Plugin URI: http://blog.wpjam.com/m/move-duoshuo-js-to-footer/
Description: 把多说的 JavaScript 脚本移到 footer
Version: 0.1
Author: Denis
*/
add_action('init', 'move_duoshuo_js_to_footer');
function move_duoshuo_js_to_footer() {
global $duoshuoPlugin;
remove_action('wp_print_scripts', array($duoshuoPlugin, 'appendScripts'));
add_action('wp_footer',array($duoshuoPlugin, 'appendScripts'));
}
?>
将上面的复制到当前主题的 functions.php
文件,或者直接复制保存一个文件,上传到当前插件目录,激活即可。
附加:
以上方法对 slideshow 和 back2top 等插件都有效,例如:
1) back2top
编辑vim ./wp-content/plugins/back-to-top/back-to-top.php
注释替换:
//add_action('wp_print_scripts', array(&$this, 'Back2top_ScriptsAction')); // 注释掉此行,因为它会把 js 打印到 head 头部
add_action('wp_footer', array(&$this, 'Back2top_ScriptsAction')); // 此句替换上面一行,则把 head 头部js移到了底部
2) slideshow 插件
编辑 vim ./wp-content/plugins/slideshow-gallery/slideshow-gallery.php
注释替换:
//$this -> add_action('wp_print_scripts', 'print_scripts'); // 注释掉此行,因为它会把 js 打印到 head 头部
$this -> add_action('wp_footer', 'print_scripts'); // 此句替换上面一行,则把 head 头部js移到了底部
最近为 Jeff的阳台 折腾着插件的提速工作。Jeff的阳台使用了多说评论系统,但多说的加载速度实在是不敢恭维(稳定性也一样),于是又邪恶地想到为多说提速一番,下面就将Jeff的成果写出来分享分享。Jeff 针对多说的提速目前只要在两个方面:js内页页脚加载、静态文件CDN。以下是以最新版本的多说插件(1.1版本)来提速。
js内页页脚加载
以前版本的多说,多说核心脚本embed.js默认所有页面加载,默认网页头部加载。最新版本的多说对于后面一项已经提供用户选择的权利了,在WordPress 后台-多说评论-高级选项 就有:
那么,是要解决“所有页面加载”的问题了。这一点多说插件并没有选项,而我们知道,评论一般在文章中(内页),如果在首页也加载,并不是一个明智的做法。
要将多说核心脚本embed.js 只在内页加载,必须要对插件php 文件动手。打开插件目录的 duoshuo 文件夹,里面有个 WordPress.php 文件,打开(vim ./wp-content/plugins/duoshuo/WordPress.php),大概在581 行有那么一段代码:
只在内页加载的话将上面代码替换为如下:
搞定!
静态文件CDN
在前台的话,多说插件一般加载有个js与css 文件——embed.js、embed.xxx.css(xxx为评论样式主题名称,最新版有该功能)。两个文件都是在static.duoshuo.com 这个二级域名下,该域名本身也有CDN,但Jeff 用站长工具“超级ping”查看了一下,加速节点才那么几个。于是Jeff 想到了用七牛云存储 来加速这两个静态文件。
熟悉七牛的应该知道怎么做了:在七牛后台新建一个空间,如Jeff新建了一个dstatic的空间,对应的七牛的二级域名就是 dstatic.qiniudn.com 。接着在空间设置 那里源站加速static.duoshuo.com 。
在此之前,先说说对于embed.xxx.css ,因为该文件是在embed.js(http://static.duoshuo.com/embed.js) 那里调用的,调用的代码在embed.js 是这么一行:
如果你将embed.js 格式化分析一下,你就会发现这么一句:y = "http://static.duoshuo.com",
,好吧,我懒得分析这个与上面代码的关系了,下面只说修改方法:下载该embed.js 文件,在该下载的文件搜索 static.duoshuo.com
(仅有一处),修改为七牛的地址(如Jeff 是 dstatic.qiniudn.com)。
然后将embed.js 改名为embed2.js (为了防止与七牛镜像的embed.js 起冲突),上传到七牛的空间里面。以Jeff的为例,在七牛的地址就是 dstatic.qiniudn.com/embed2.js 。
插件目录的 duoshuo 文件夹,里面有个 WordPress.php 文件,搜索“embed.js” 有两处结果,对应的代码是:
上诉的url(http那段) 都改为七牛的地址,如Jeff 改为:http://dstatic.qiniudn.com/embed2.js
保存上传,搞定!
本次教程一个例子就是 Jeff的阳台 ,请自行前往分析。
参考推荐:
版权所有: 本文系米扑博客原创、转载、摘录,或修订后发表,最后更新于 2014-03-23 14:00:19
侵权处理: 本个人博客,不盈利,若侵犯了您的作品权,请联系博主删除,莫恶意,索钱财,感谢!