coningham
1/27/2015 - 4:31 PM

preserve HTML formatting to automatically generated excerpts

preserve HTML formatting to automatically generated excerpts

function custom_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);

    $allowed_tags = '<p>,<br />';
    $text = strip_tags($text, $allowed_tags);

    $excerpt_word_count = 55;
    $excerpt_length = apply_filters('excerpt_length', $excerpt_word_count);

    $excerpt_end = '...<br /><a href="'. get_permalink($post->ID) . '">Leia mais &raquo;</a>';
    $excerpt_more = apply_filters('excerpt_more', ' ' . $excerpt_end);

    $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);
    }
}
return apply_filters('wp_trim_excerpt', $text, $raw_excerpt);
}
remove_filter('get_the_excerpt', 'wp_trim_excerpt');
add_filter('get_the_excerpt', 'custom_wp_trim_excerpt');