技術文檔
WordPress:Memcached 內存緩存優化 ,加速WordPress 后臺媒體庫加載
WordPress網站媒體庫的圖片隨著文章的增長,會越來越多,有時候不斷的去翻幾個月前的圖片進行引用,發現顯示特別慢,原來這個內存緩存并沒有緩存媒體庫月份篩選附件功能這里。今天就跟大家分享下如何使用Memcached內存緩存優化WordPress 后臺媒體庫加載。
WordPress 是直接通過查詢數據庫來獲取博客的附件的月份,這樣每次打開媒體庫,或者添加媒體,打開「添加媒體」彈窗時候,都會到數據庫去查詢。用起來會有那么點卡頓,當然了,某些人連內存緩存都沒開的,估計也不在乎這些卡頓。
使用內存緩存優化媒體庫月份獲取雖然不會造成很大的問題,但是附件如果不新增刪除,這個月份的數據基本不會變化,站長是用WPJAM插件配合 Memcached 將其緩存起來。不說有什么特殊效果,至少自己添加起媒體文件總舒服很多吧!
將下面的代碼復制到當前主題的functions.php文件中,就可以使用內存來緩存媒體庫的月份了:
?復制// 使用 Memcached 內存緩存優化 WordPress 后臺媒體庫月份獲取加載 - https://www.31idc.comadd_filter(media_library_months_with_files, function($months){$months= get_transient(wpjam_media_library_months);if($months === false) {global $wpdb;$months = $wpdb-get_results("SELECT DISTINCT YEAR( post_date ) AS year, MONTH( post_date ) AS month FROM $wpdb-posts WHERE post_type = attachment ORDER BY post_date DESC");set_transient(wpjam_media_library_months, $months, WEEK_IN_SECONDS);}return $months;});
當然,你要是覺得不想要了,也可以刪除后臺媒體庫附件月份的緩存。
?復制// 刪除后臺媒體庫附件月份的緩存 - https://www.31idc.comfunction wpjam_delete_media_library_months_cache(){delete_transient(wpjam_media_library_months);}add_action(edit_attachment,wpjam_delete_media_library_months_cache);add_action(add_attachment,wpjam_delete_media_library_months_cache);add_action(delete_attachment,wpjam_delete_media_library_months_cache);