WordPress 指的是你直接查询数据库获取博客附件的月份,这样每次打开媒体库,添加媒体,打开“添加媒体”弹出窗口,就会去数据库查询。用的时候会有点卡。当然,有些人甚至不打开内存缓存,他们可能不关心这些卡住的。
使用内存缓存优化媒体库月采集。
虽然不会造成很大的问题,但是如果附件不加不删,这个月的数据基本不会变。我弟弟用 WPJAM 插件用 Memcached 缓存它们。别说什么特效了,至少自己加媒体文件总是舒服很多!
将以下代码复制到当前主题的functions.php文件中,您可以使用内存来缓存媒体库的月份:
// 使用 Memcached 内存缓存优化 WordPress 后台媒体库月份获取加载 -
add_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;
});
当然,你要是觉得不想要了,也可以删除后台媒体库附件月份的缓存。
// 删除后台媒体库附件月份的缓存 -
function 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');
转载请注明:汇站网 » 使用 Memcached 内存缓存优化 WordPress 后台媒体库加载