缙哥哥的博客
与你分享我的点点滴滴生活

使用 Memcached 内存缓存优化 WordPress 后台媒体库加载

缙哥哥很早的时候就推荐大家使用内存缓存(《Redis和Memcached哪个比较好?》)对 WordPress 进行加速,最终缙哥哥选择了(宝塔下运行Memcached加速WordPress,附插件配置方法)这个。但是这么几年过来,媒体库的图片也是很多了,有时候不断的去翻几个月前的图片进行引用,发现显示特别慢,原来这个内存缓存并没有缓存媒体库月份筛选附件功能这里。今天就跟大家分享下如何使用 Memcached 内存缓存优化 WordPress 后台媒体库加载。

WordPress 是直接通过查询数据库来获取博客的附件的月份,这样每次打开媒体库,或者添加媒体,打开「添加媒体」弹窗时候,都会到数据库去查询。用起来会有那么点卡顿,当然了,某些人连内存缓存都没开的,估计也不在乎这些卡顿。

使用内存缓存优化媒体库月份获取

虽然不会造成很大的问题,但是附件如果不新增删除,这个月份的数据基本不会变化,缙哥哥是用 WPJAM 插件配合 Memcached 将其缓存起来。不说有什么特殊效果,至少自己添加起媒体文件总舒服很多吧!

将下面的代码复制到当前主题的 functions.php 文件中,就可以使用内存来缓存媒体库的月份了:

// 使用 Memcached 内存缓存优化 WordPress 后台媒体库月份获取加载 - https://www.dujin.org/14221.html
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;
});

当然,你要是觉得不想要了,也可以删除后台媒体库附件月份的缓存。

// 删除后台媒体库附件月份的缓存 - https://www.dujin.org/14221.html
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');

好了,有更多玩法欢迎跟缙哥哥分享。

历史上的今天:

  1. 2018年:  《PUA套路升级:不再局限用话术 买迷药直接迷奸女性》- 作者:缙哥哥(0)
  2. 2018年:  《PUA中毒者:第1年与40人发生关系 颜值和身材即标准》- 作者:缙哥哥(3)
  3. 2015年:  《碰到这样的妹子,警察叔叔也是瞬间凌乱了》- 作者:缙哥哥(0)
  4. 2015年:  《这才是深喉,妹子表演给你看!》- 作者:缙哥哥(4)
  5. 2015年:  《我擦,这什么智能机,这么牛逼!》- 作者:缙哥哥(1)
赞(3) 打赏
转载请注明来源及链接:缙哥哥 » 使用 Memcached 内存缓存优化 WordPress 后台媒体库加载
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏