画星星高手

It nerver rains but it pours.

WordPress: 为WPJam插件填坑

前言

博客开通也有一段时间了,文章越来越多,各种图片资源也多了,渐渐感觉到博客打开速度有点慢,对于我的服务器来说压力也不小,于是决定开始优化网站,最近注册了七牛云存储空间,速度杠杠的。
但是我需要一个快捷的方法来把博客里原有的资源转移到云空间,于是开始使用WPJam的这个七牛云插件。

然而

这个七牛云插件依赖于WPJam-Basic这个插件,但是这个插件安装完却出错了!

错误代码类似于这个:

Fatal error: Uncaught Error: Call to undefined function mb_strimwidth()

导致我的所有文章都显示不出来了。

这个就很烦了。

解决

仔细看了一下错误代码,原来是找不到mb_strimwidth这个函数,为啥会找不到这个呢,看了一下PHP的文档,原来是没有开启mbstring模块,然而需要重新编译PHP,这就很麻烦了。

于是退而求其次,看了一下这个函数的功能,从字符串中截取指定长度的字符串,这个我们可以自己实现一个。

找到出错的文件,wpjam-functions.php

这个文件使用了两个未定义的函数:mb_strwidth,mb_strimwidth

不怕,我自己来定义这两个函数。

function mb_strwidth($str){
    return strlen($str);
}
function mb_strimwidth($str ,$start , $width ,$trimmarker ){
    $output = preg_replace('/^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$start.'}((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$width.'}).*/s','\1',$str);
    return $output.$trimmarker;
}

然后保存这个文件,到博客主页刷新一看,嘿嘿,问题解决了。

后记

除了这个问题以外,这个插件做的还是不错的,挺好用的。
配合七牛的CDN加速,现在博客的速度嗖嗖的,贼快!

点赞

发表评论