add_filter(\'wp_trim_excerpt\', function($text){
$max_length = 140;
if(mb_strlen($text, \'UTF-8\') > $max_length){
$split_pos = mb_strpos(wordwrap($text, $max_length), "\\n", 0, \'UTF-8\');
$text = mb_substr($text, 0, $split_pos, \'UTF-8\');
}
return $text;
});
这应该考虑到您的最大长度,并在最近的单词边界处拆分文本。应用筛选器,然后调用
the_excerpt();
在模板中
显然有一个wp_trim_words
您也可以使用WP 3.3中的函数,但从源代码看效率非常低。由于使用了3个正则表达式,它将文本拆分为一个单词数组,对于大块文本,这可能会变得非常缓慢,并且内存耗尽。。。