wordpress速度优化之自定义菜单缓存减少数据库读取
一直在修改网上下载的MNEWS主题,挺喜欢这个主题的,但是在实际的应用当中却也给我带来了不少麻烦,这个主要就是访问速度的问题了!随便打开一个页面就有多达几十个数据库查询,这不是闹着玩的,如果流量大的话,直接就导致崩盘了;之前说了WordPress启用Memcache缓存及WordPress開啓Opcache加快网站访问速度,今天在一步一步查找数据库查询的时候发现自定义菜单也是要查询数据库的,这个百十年不修改一次的玩意如果每次都查数据库那岂不是加速杯具的上演了,今天就从菜单下手
网上发现我爱水煮鱼有一篇文章【WordPress 技巧:缓存自定义菜单,加快博客速度】看来高手已经解决了,但是不知道为什么我使用他提供的代码居然没有反应,好吧只好自己随便改了下,先凑合着用吧,至少减少了一次数据库查询,速度又可以提升了!下面是我改的代码,更新没做,不过上面已经写了说明
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
//给 wp_nav_menu 加上对象缓存,加快效率 add_filter( 'pre_wp_nav_menu', 'wpjam_get_nav_menu_cache', 10, 2 ); function wpjam_get_nav_menu_cache( $nav_menu, $args ) { $cache_key = md5($args->container_class); $cached_menu = wp_cache_get($cache_key,'nav_menu_cache'); if ( ! empty( $cached_menu ) ) return $cached_menu; return $nav_menu; } add_filter( 'wp_nav_menu', 'wpjam_set_nav_menu_cache', 10, 2 ); function wpjam_set_nav_menu_cache( $nav_menu, $args ) { $cache_key = md5($args->container_class); $cached_menu = wp_cache_get($cache_key,'nav_menu_cache'); if(false === $cached_menu ){ wp_cache_set($cache_key,$nav_menu ,'nav_menu_cache',86400); } return $nav_menu; } // 更新菜单,清理缓存 这个暂时不知道参数都有什么 暂且不管了 add_action( 'wp_update_nav_menu', 'wpjam_delete_nav_menu_cache' ); function wpjam_delete_nav_menu_cache( $menu_id, $menu_data){ wp_cache_delete('testkey','nav_menu_cache'); //set_transient( 'nav-menu-cache-timestamp', time(), 86400 ); } |
吐槽一下,虽然个人感觉MNEWS主题不错,但是在一定数据量后,其打开速度真的不敢恭维了,而自己又费时改了那么多,现在放弃也有点难受故而只好进行彻底的优化,看能不能弥补了!
对于这个自定义菜单倒是看TINT模板整的挺不错,很多地方都进行了优化,访问速度真的很不错!目前3WIP的情况下也基本是秒开,还是很不错的!不知道这个MNEWS主题什么时候能让我优化成自用的主题!