去取模板中大量的读数据库操作
在模板中(尤其是header.php)存在大量的bloginfo()函数,例如bloginfo("url"), bloginfo("stylesheet_directory"), bloginfo("title")等,每次调用bloginfo()函数都会访问一次数据库,最简单的方法是硬编码(hard code), 就是说用类似"www.abc.com"来替换bloginfo("url"),用"www.abc.com/wp-content/themes/yourtheme"来替换bloginfo("stylesheet_directory"),但是这种维护不太方便,尤其是在不同的域名之间进行测试时。我在项目中采用创建一个constants.php文件,然后在functions.php(改文件是由wordpress自动载入)引入,在constants.php文件中定义两个常量:define('STYLESHEET_DIRECTORY', get_bloginfo('stylesheet_directory', 'display')); define('BASE_URL', get_bloginfo('url', 'display'));这样就既可以所有的模板文件中使用这些变量从而减少数据库查询,又避免了硬编码,便于维护。
减少页面请求数量
1. 去除页面里不必要的CSS文件和JS文件
2. 使用WP CSS
来把多个CSS文件和JS文件合并成一个文件,然后进行压缩,最后还可以对压缩后的文件启用缓存,当然WP CSS
对多个文件是不工作的,我参照WP JS
把它修改成可以工作了,当然了需要的朋友也可以自己修改或留下邮件,我可以把改好的插件发过去。
3. 采用CSS Sprits技术将多张小图片合并成一张大图片,这样有效的减少请求数量。
4. 通常wordpress是会自动载入JQuery文件的,因此开发者就没有必要自己再引入一个新的JQuery文件了,因为好多插件都会依赖于JQuery插件,一个小的问题是系统自带的JQuery文件不能使用$(),如果要使用的话,把/wp-includes/js/jquery/jquery.js最后一行的JQuery().noConflict()去掉即可。
压缩页面
1. 如果可以配置Apache,那可以直接启用压缩模块就可以。
2. 如果是虚拟主机,则可以通过启用GZip Output
来对页面输出进行压缩,记住,它只会压缩HTML文档本身,而不会压缩CSS,JS,Images等
启用缓存
对于访问量比较大站点,则可以采用静态化技术来缓存整个页面将相应网页中的内容保存在静态文件中,这样,当其他用户再次访问时即可直接提取缓存文件,免除了 WordPress重新编译PHP代码、频繁读取数据库带来的效率低下问题,即实现类似于静态网页的效果。推荐WP Super Cache
, 当然了,还有一些优化数据库的插件,可以试一下。
其它
1. 卸载所有不必要的插件。
2. 减小图片大小。
3. 将JS放在页面底部,可以加快页面的下载速度,因为JS文件是单线程下载的。