在 WordPress 主题中,经常要用到内置函数 mb_strimwidth(),这个函数的作用主要是用来截取字符串的,常常用在首页截取部分文字中,用的频率还是比较多的,但有些主机偏偏不支持这个函数,最近就有一个客户使用 GoDaddy 的虚拟主机说主题出现错误,后来@子凡 排查一番才发现问题所在,因为使用 mb_strimwidth 这个函数是需要开启 PHP 的 mb_string 这个模块的,如果是虚拟主机的话自己就没有权限去更改了。

虽然最后客户是通过联系 GoDaddy 客服开启 mb_string 解决的,但是相信对于一些无法通过服务商解决的,所以还可以用其它的方法来替代这个函数了,我们重新定义一个截取字符串的函数方法即可,代码如下:

1
2
3
4
5
//自定义截断函数
function ts_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;
}

将函数方法定义好后,在需要的地方直接调用就可以了,代码如下:

1
echo ts_strimwidth(strip_tags($post->post_content),0,200,'…');

这个函数实现的效果和 mb_strimwidth() 函数实现的效果是一样的,用法也一模一样,假如你的主机不支持 mb_strimwidth() 函数,就可以用以上的方法来替换了。

发表评论
登录后参与评论
专注 WordPress 网站优化解决方案! 加入我们