群里很多小伙伴都羡慕 weixiaoduo.com 的网站速度,但是苦于不知道如何优化。其实呢,小编从很早以前就把 weixiaoduo.com 的优化方法慢慢的发出来了,不过由于 WordPress 教程写的太过于分散,很多新人还是找不到头绪那么这次小编就把所有 WordPress 优化的步骤一起写在这篇文章发出来给大家分享。

第一步:WordPress 数据库优化

大家都知道 WordPress 是 php+mysql 环境下的建站程序,那么在大数据的情况下程序运行的瓶颈就是数据查询。那么为了减小数据库的大小,最有效的方法就是删除冗余数据以及禁止 WordPress 自动保存文章草稿、文章修订等无用数据。仅需在当前 WordPress 主题的 functions.php 文件中加上以下代码即可禁用 WordPress 的自动保存功能。

//禁止 wptexturize 函数
remove_filter('the_content', 'wptexturize');
remove_action('pre_post_update', 'wp_save_post_revision' );
add_action( 'wp_print_scripts', 'disable_autosave' );
function disable_autosave() {
    wp_deregister_script('autosave');
}

参考文章:《 WordPress 数据库优化技巧 – 禁用自动保存草稿以及历史版本》

当然禁用了自动保存和修订版本后,WordPress 还是会产生一定的冗余数据,具体可以参考这篇文章进行 WordPress 数据库的深度优化:《 WordPress 数据库结构说明以及 WordPress 数据库优化方法》

不过懒人的话,可以使用小编准备好的 WordPress 数据库一键优化脚本,代码如下:

<?php
//WordPress 数据库优化脚本 by weixiaoduo.com
$hostname_blog = "localhost";//设定数据库主机,同 wp-config.php
$database_blog = "WordPress";//设定数据库名,同 wp-config.php
$username_blog = "root";//设定数据库用户名,同 wp-config.php
$password_blog = "";//设定数据库密码,同 wp-config.php
$blog = mysql_pconnect($hostname_blog, $username_blog, $password_blog) or trigger_error(mysql_error(),E_USER_ERROR);
mysql_select_db($database_blog, $blog);
mysql_query('DELETE FROM wp_posts WHERE post_type = "revision"');
mysql_query('DELETE FROM wp_postmeta WHERE meta_key = "_edit_lock"');
mysql_query('DELETE FROM wp_postmeta WHERE meta_key = "_edit_last"');
mysql_query('DELETE FROM wp_commentmeta WHERE meta_key LIKE "%trash%"');
mysql_query('DELETE FROM wp_comments WHERE comment_approved = "trash"');
mysql_query('DELETE FROM wp_options WHERE option_name REGEXP "_transient_"');
mysql_query('DELETE FROM wp_postmeta WHERE meta_key = 『_wp_attached_file』');
mysql_query('DELETE FROM wp_postmeta WHERE meta_key = 『_wp_attachment_metadata』');
mysql_query("delete from wp_posts
where (post_status='auto-draft' or post_status='inherit')
and post_type='post'");
$tablelist = mysql_query("SHOW TABLES");
while($checklist = mysql_fetch_array($tablelist)) {
       $optimization=mysql_query("OPTIMIZE TABLE `$checklist[0]`");
}echo 'Done';

//ps 记得修改数据库前缀~
//使用时将脚本上传至网站任意目录后并且通过浏览器访问即可一键优化 wordprsss 数据库。

将以上代码复制到记事本中然后保存为 db_best.php 文件,修改好相应数据库信息后上传至网站然后使用浏览器直接访问该脚本即可一键优化数据库,不过由于一次性执行多个 sql 查询,所以该脚本访问时响应速度可能会比较长,优化成功后会显示 Done 。 (PS:优化前记得备份数据库以防万一。)

然后再屏蔽垃圾评论提交到数据库,这样数据库就优化的差不多了,防垃圾评论方法:《 WordPress 屏蔽垃圾评论终极策略》

第二步:WordPress 前端优化。

1 、 CDN 加速:

其实呢网站加载速度的最终瓶颈在于前端资源,那么做好前端优化网站的速度一定有大幅度的提升。说道前端优化呢,由不得不说说昨天小编提到的 cdn 加速:《 WordPress 加速优化教程:非插件部署 cdn 加速 (七牛、又拍云) 》

使用 cdn 加速静态文件后可以使网站的速度得到大幅度的提升。

2 、去除冗余的 html 代码

做完了以上步骤,我们可以进一步的优化 WordPress 的前端代码达到深度优化的目的。大多数爱折腾的童鞋一定会发现 WordPress 的头部通常会载入很多无关紧要的代码,但是这些代码在 WordPress 的头部文件中却找不到。其实呢这些代码都是通过 wp_head() 这个函数加载进来的,那么怎么来删除这些代码呢?在 functions.php 文件中加入以下代码即可,代码如下:

remove_action( 'wp_head', 'wp_enqueue_scripts', 1 ); //Javascript 的调用
remove_action( 'wp_head', 'feed_links', 2 ); //移除 feed
remove_action( 'wp_head', 'feed_links_extra', 3 ); //移除 feed
remove_action( 'wp_head', 'rsd_link' ); //移除离线编辑器开放接口
remove_action( 'wp_head', 'wlwmanifest_link' );  //移除离线编辑器开放接口
remove_action( 'wp_head', 'index_rel_link' );//去除本页唯一链接信息
remove_action('wp_head', 'parent_post_rel_link', 10, 0 );//清除前后文信息
remove_action('wp_head', 'start_post_rel_link', 10, 0 );//清除前后文信息
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 );
remove_action( 'wp_head', 'locale_stylesheet' );
remove_action('publish_future_post','check_and_publish_future_post',10, 1 );
remove_action( 'wp_head', 'noindex', 1 );
remove_action( 'wp_head', 'wp_print_styles', 8 );//载入 css
remove_action( 'wp_head', 'wp_print_head_scripts', 9 );
remove_action( 'wp_head', 'wp_generator' ); //移除 WordPress 版本
remove_action( 'wp_head', 'rel_canonical' );
remove_action( 'wp_footer', 'wp_print_footer_scripts' );
remove_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0 );
remove_action( 'template_redirect', 'wp_shortlink_header', 11, 0 );
add_action('widgets_init', 'my_remove_recent_comments_style');
function my_remove_recent_comments_style() {
global $wp_widget_factory;
remove_action('wp_head', array($wp_widget_factory->widgets['WP_Widget_Recent_Comments'] ,'recent_comments_style'));
}

参考文章:《 WordPress 加速优化之精简头部代码》

最后再压缩下前端代码删除 HTML 上的不必要的空格、制表符、回车和新行等来进行最后的扫尾优化,当然直接在主题里剔除这些工作量太大,而且也降低了主题代码的可读性,以后也不便修改主题,这里小编推荐给大家一款不错的插件:《 WordPress 加速优化系列之 WP-HTML-Compression 前端压缩插件》

另外这里还有些加速的方法,不过这些需要依据不同网站不同的需求来选择是否优化:

《 WordPress 加速优化教程:关闭 WordPress 站内搜索功能以及对外请求》

《 WordPress 加速优化教程:多种 Gravatar 头像缓存方案》

《 WordPress 深度优化禁用不常用功能加速网站》

《 WordPress 加速优化进阶教程:DNS 预获取 (DNS Prefetching) 》

《 WordPress 加速优化教程:使用相对链接》

《 WordPress 加速优化教程:强制 jquery 库文件底部载入》

最后小编再推荐一个很不错的 WordPress 加速插件:WP Super Cache 。