Я использую это в моем functions.php:
function truncate ($str, $length=10, $trailing='...'){
// take off chars for the trailing
$length-=mb_strlen($trailing);
if (mb_strlen($str)> $length){
// string exceeded length, truncate and add trailing dots
$str = mb_substr($str,0,$length);
$str = explode('. ',$str);
for( $i=0; $i<(sizeof($str)-2); $i++ ):
$newstr .= $str[$i].". ";
endfor;
return $newstr;
} else{
// string was already short enough, return the string
$res = $str;
}
return $res;
}
. Оно должно быть усечено до количества символов, но затем усечено обратно до последнего периода перед усечением.Однако это становится проблематичным, когда в ваш отрывок включены ссылки или другая разметка - другими словами, лучше использовать поле «Выдержка» в сообщении, а не автоматическую выдержку с этой функцией, потому что вы не можете использовать HTML в поле отрывка..