OK, I figured out. Put this into functions.php
function my_custom_excerpt($text) {
global $post;
if ( '' == $text ) {
$text = get_the_content('');
$text = apply_filters('the_content', $text);
$text = str_replace('\]\]\>', ']]>', $text);
$fulltext = str_replace('\]\]\>', ']]>', $text);
$text = strip_tags($text, '<p>');
$excerpt_length = 100;
$words = explode(' ', $text, $excerpt_length + 1);
if (count($words) > $excerpt_length) {
array_pop($words);
array_push($words, '... <a href="'. esc_url( get_permalink() ) . '">Read more ?</a>');
$text = implode(' ', $words);
}
else {
$text = $fulltext;
}
}
return $text;
}
remove_filter('get_the_excerpt', 'wp_trim_excerpt');
add_filter('get_the_excerpt', 'my_custom_excerpt');