Black Friday Sale! Get $20 off GP Premium, $40 off our new Lifetime license, and 45% off license renewals/extensions! Learn more

[Resolved] Blog: Only strip some HTML

Home Forums Support Blog: Only strip some HTML

  • This topic has 3 replies, 2 voices, and was last updated 5 years ago by Tom.
Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #149153
    xdaniel

    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

    #149192
    Tom
    Lead Developer
    Lead Developer

    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;
    }
    #149857
    xdaniel

    Magic Merlin. This works. Thanks a lot!

    #149895
    Tom
    Lead Developer
    Lead Developer
Viewing 4 posts - 1 through 4 (of 4 total)
  • You must be logged in to reply to this topic.