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