Site logo

Archived topic

Blog: Only strip some HTML

3 replies · Started by xdaniel on October 31, 2015

Viewing posts 1–4 of 4

Hi Tom,

I wondered if there's a possibilty to strip only some HTML-Tags using the excerpt.

I would like to allow some tags like p,br,img,strong,em

Best wishes

Daniel

Something like this may work (not tested):

remove_filter('get_the_excerpt', 'wp_trim_excerpt');
add_filter('get_the_excerpt', 'generate_improved_trim_excerpt');
function generate_improved_trim_excerpt($text) {
    global $post;
    if ( '' == $text ) {
        $text = get_the_content('');
        $text = apply_filters('the_content', $text);
        $text = str_replace(']]>', ']]>', $text);
        $text = preg_replace('@<script[^>]*?>.*?</script>@si', '', $text);
        $text = strip_tags($text, '<p>,<br>,<strong>,<em>,<img>');
        $excerpt_length = 55;
        $words = explode(' ', $text, $excerpt_length + 1);
        if (count($words)> $excerpt_length) {
            array_pop($words);
            array_push($words, '[...]');
            $text = implode(' ', $words);
        }
    }
    return $text;
}

Magic Merlin. This works. Thanks a lot!

You're welcome :)

This archived topic is closed to new replies.