• 公告栏使用li标签,同时你可以使用FontAwesome以及其他HTML语法
  • FontAwesome示例
  • 道德在书本里, 榜样在电视里, 国土在肺里, 爱情在房产证里, 幸福感在梦里...这就是中国特色

wordpress mb_strimwidth() 函数不可用解决办法

菜鸟Linux笔记 shaobo 50次浏览 808字 0个评论

博客搬家将以前的APACHE换成了NGINX,配置的过程中没有安装php5_mbstring导致首页的摘要始终无法显示,之前做模板时首页摘要是用mb_strimwidth() 函数进行截断,一开始还以为是模板出问题了,修改了半天,都无法解决,最后无意间在网上看到一篇文章才发现自己没安装php5_mbstring导致的,直接安装然后重启nginx和php-fpm就OK了。

mb_strimwidth() 函数进行截断,对于中文用户来说,这个函数是相当实用的,因为很多摘要的方法都会把中文字截断出乱码,因为中文字在 UTF-8 编码下占三个长度,如果你使用的是VPS,那么直接安装php5-mbstring即可,如果是虚拟主机,那就看主机都默认支持这个函数的,前提是要开启 mb_string 这个模块。那如果主机没有开启 mb_string 就不能使用 mb_strimwidth() 函数了吗?有没有变通的办法呢?答案当然是 YES

先在 WordPress 主题的 functions.php 文件中添加如下代码:

function dm_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;

}

接下来在需要的地方调用如下:

 

echo dm_strimwidth(strip_tags($post->post_content),0,200,'<a href="'.get_permalink().'">......[阅读全文]</a>');


喜欢 (0)

您必须 登录 才能发表评论!