我想说的是,看看core是如何做到的:http://phpxref.ftwr.co.uk/wordpress/wp-includes/formatting.php.source.html#l1840
为了便于复制和粘贴,我冒昧地将代码放在这里。
global $post;
if( empty($post->post_excerpt) ){
$text = apply_filters( \'the_excerpt\', get_the_excerpt() );
} else {
$text = $post->post_excerpt;
$text = strip_shortcodes( $text );
$text = apply_filters(\'the_content\', $text);
$text = str_replace(\']]>\', \']]>\', $text);
$text = strip_tags($text);
$excerpt_length = apply_filters(\'excerpt_length\', 55);
$excerpt_more = apply_filters(\'excerpt_more\', \' \' . \'[...]\');
$words = preg_split("/[\\n\\r\\t ]+/", $text, $excerpt_length + 1, PREG_SPLIT_NO_EMPTY);
if ( count($words) > $excerpt_length ) {
array_pop($words);
$text = implode(\' \', $words);
$text = $text . $excerpt_more;
} else {
$text = implode(\' \', $words);
}
}