自定义WordPress字符串截取函数

一般情况下,当我们制作wordpress列表页的时候,会需要截取一部分正文内容作为列表的文章摘要,当然,wordpress认的是有一个字符串截取函数,那就是wp_trim_words(),但是我们在日常wordpress主题开发中发现这个函数一个问题,那就是,比如网站整体您设置的是英语,但是你某个账号设置的是中文,那么使用这个函数截取指定字数的字符串的时候,当使用这个账号登陆状态下和不使用这个账号登陆状态下显示数量是不同的,这可能是英文这个函数会根据当前账号的语言去进行截取,大家知道中文和英文计算字符串数量是不同的,所以会导致以上这种情况。

另外,wordpress还有另外一个函数mb_strimwidth()可以进行字符串的截取,但是这个函数需要服务器支持PHP-mbstring,然而有些服务器活主机却不能支持PHP-mbstring,所以还是不太好用。

再者,如果直接使用PHP的mb_substr()函数,同样是对PHP有一定要求的。

所以,不如果我们自己定义一个字符串截取函数来使用,其实方法很简单,将下面的代码放到您的主题functions.PHP中:

//自定义字符串截断函数

//https://www.wp-diary.com

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

}

然后需要使用的地方直接使用<?PHP echo mx_strimwidth('这里是要截取的字符串','这里是从第几个字符开始截取一般是0','这里是要截取字符串的数量','这里是超出截取数量后的文字用什么显示比如省略号');?>进行截取输出显示就行了。

希望以上内容对您有所帮助

相关文章

我们有时候在定制WORDPRESS主题的时候,由于菜单样式的要求我...
很多朋友在做wordpree主题制作的时候会经常遇到一个问题,那...
wordpress后台的模块很多,但并不是每个都经常用到。介绍几段...
从WordPress4.2版本开始,如果我们在MYSQL5.1版本数据中导出...
很多网友会遇到这样一个问题,就是WordPress网站上传图片、附...
对于经常要在文章中出现代码的IT相关博客,安装一个代码高亮...