UTF8 中文截取
其中对字符串预先 __() 处理,可以从 qtranslate 中取出当前语言部分然后进行截取。
function the_excerpt_max_charlength($charlength) { $excerpt = get_the_excerpt(); $charlength++; if (mb_strlen($excerpt) > $charlength) { $subex = mb_substr($excerpt, 0, $charlength - 5); $exwords = explode(' ', $subex); $excut = - ( mb_strlen($exwords[count($exwords) - 1]) ); if ($excut < 0) { echo mb_substr($subex, 0, $excut); } else { echo $subex; } echo '...'; } else { echo $excerpt; } }
function utf8Substr($str, $from, $len)
{
if ($len == 0){
return __($str);
}else{
return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.
'((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s',
'$1',__($str));
}
}
//use
utf8Substr($recent["post_title"],0,14);
function utf8_trim($str) {
$len = strlen($str);
for ($i=strlen($str)-1; $i>=0; $i-=1){
$hex .= ' '.ord($str[$i]);
$ch = ord($str[$i]);
if (($ch & 128)==0) return(substr($str,0,$i));
if (($ch & 192)==192) return(substr($str,0,$i));
}
return($str.$hex);
}
function mul_excerpt ($excerpt) {
$myexcerpt = substr($excerpt,0,255);
return utf8_trim($myexcerpt) . ' ... ';
}
add_filter('the_excerpt', 'mul_excerpt');
放在function.php 文件里,对 the_excerpt 过滤处理, 长度为 255,也可以换成你想要的长度。
Comments
848 responses to “WordPress UTF8 中文截取”