
羣裏很多小夥伴都羨慕 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 。