WordPress开启Redis缓存后对手机和PC分别进行缓存

WordPress开启Redis浏览速度大幅提升,本博在上一篇文章也提到了如何开启redis缓存详见下方链接:

[suxing_insert_post ids=16]

但是在开启缓存后,多少会有些bug出现,比如主题大量使用了wp_is_mobile()函数来做判断然后对手机和pc的界面进行区分的话,bug就比较明显了,具体bug本次不在进行重现,有很多。

那么如何解决这样的问题呢?

博主另辟蹊径,找到了解决方案——对PC访问和手机方案分开进行缓存,然后根据访问者是否为移动设备来读取不同的缓存。当然实现方法也很简单,只需简单修改index-with-redis.php文件,具体修改如下:

首先加入判断时候为手机设备的判断函数,这里直接引用了wp自带的判断函数,仅仅修改了函数名:

/*判断移动浏览器*/
function redis_is_mobile(){
static $is_mobile;
if( isset($is_mobile))
return $is_mobile;
if( empty($_SERVER['HTTP_USER_AGENT'])){
$is_mobile =false;
}
else if ( strpos($_SERVER['HTTP_USER_AGENT'],'Mobile')!==false
|| strpos($_SERVER['HTTP_USER_AGENT'],'Android')!==false
|| strpos($_SERVER['HTTP_USER_AGENT'],'Silk/')!==false
|| strpos($_SERVER['HTTP_USER_AGENT'],'Kindle')!==false
|| strpos($_SERVER['HTTP_USER_AGENT'],'BlackBerry')!==false
|| strpos($_SERVER['HTTP_USER_AGENT'],'Opera Mini')!==false){
$is_mobile =true;
}else{
$is_mobile =false;
}
return $is_mobile;
}

 

将本段函数写到index-with-redis.php的尾部,当然其他位置也可以。

然后在修改

$dkey = md5($domain);
$ukey = md5($url);

 

为:

if(!redis_is_mobile()){
$dkey = md5($domain);
$ukey = md5($url);
}elseif(redis_is_mobile()){
$dkey = md5($domain.'+mobile');
$ukey = md5($url.'+mobile');
}

 

保存即可,然后就试试吧,看看是不是已经解决了手机和pc分开缓存的问题?

海拔科技

自媒体人,喜欢网络,热爱研究。本站头条号:星河 熊掌号:海拔科技

相关推荐

WordPress启用Redis为网站加速,WordPress提速教程实战版

在启用WordPress redis加速之前,首先要安装Redis数据库并开启PHP扩展,不同的环境开启方法都不太一样,有些简单有些复杂,大家暂时可以Google或者百度查找相关文档,博主用的是宝塔环境,开启是非常简单的,宝塔4.X直接后台选PHP配置直接安装redis扩展即可

解决WordPress 不支持magnet、ed2k 新协议支持

原标题:WordPress 超链接增加magnet、ed2k 新协议支持 需要在Wordpress的超链接中增加对magnet、ed2k等新协议的支持,效果类似: 肖申克的救赎 为防范SQL注入、XSS等攻击,Wordpress会在保存博客内容时候,对内 …