wordpress处理the_excerpt的代码,你可以在wp-includes目录下的formatting.php中找到,通过代码,你可发现the_excerpt是用空格来计算长度的,这对英文是可以的,但是对中文,基本上不可行。
formatting.php中的代码如下:
function wp_trim_excerpt($text = '') {
$raw_excerpt = $text;
if ( '' == $text ) {
$text = get_the_content('');
$text = strip_shortcodes( $text );
$text = apply_filters('the_content', $text);
$text = str_replace(']]>', ']]>', $text);
$excerpt_length = apply_filters('excerpt_length', 55);
$excerpt_more = apply_filters('excerpt_more', ' ' . '[...]');
$text = wp_trim_words( $text, $excerpt_length, $excerpt_more );
}
return apply_filters('wp_trim_excerpt', $text, $raw_excerpt);
}
中文文章的长度问题就是出在$test = implode(‘ ‘, $words);
解决方式
在您自己主题下面的functions.php文件中添加如下代码就可以解决了
function excerpt_read_more_link($output) {
global $post;
$output = mb_substr($output,0, 200);
return $output . '<span><a href="'. get_permalink($post->ID).'">阅读全文...</a></span>';
}
add_filter('the_excerpt', 'excerpt_read_more_link');
快看看您的文章吧,效果还不错吧。
怎么忽略空格和换行呢?
非常好使!赞一个!