How to remove wrapping p tags from acf wysiwyg field string for later custom excerpt processing

ermarus picture ermarus · Feb 22, 2014 · Viewed 7.1k times · Source

I have a WYSIWG field with the advanced custom fields plugin. When i query it with :

<p class="bran-hn news-excerpt"><?php echo custom_field_excerpt('news_post'); ?></p>

the output looks like that:

<p class="bran-hn news-excerpt"></p>
<p>Worf, It's better than music. It's jazz. Mr. Crusher, ready a collision course with the Borg ship. This is not about revenge. This is about justice. The Federation's gone; the Borg is everywhere! In all trust, [...]</p>
<p></p>

But i would have expected and want something like:

<p class="bran-hn news-excerpt">Worf, It's better than music. It's jazz. Mr. Crusher, ready a collision course with the Borg ship. This is not about revenge. This is about justice. The Federation's gone; the Borg is everywhere! In all trust, [...]</p>

i tried to add

$text = strip_tags ($text);

right before the strip_shortcodes call into the function querying the wysiwyg custom field:

function custom_field_excerpt($title) {
    global $post;
    $text = get_field($title); 
    if ( '' != $text ) {
        $text = strip_shortcodes( $text );
        $text = apply_filters('the_content', $text);
        $text = str_replace(']]>', ']]>', $text);
        $excerpt_length = 35; // 20 words
        $excerpt_more = apply_filters('excerpt_more', ' ' . '[...]');
        $text = wp_trim_words( $text, $excerpt_length, $excerpt_more );
    }
    return apply_filters('the_excerpt', $text);
}

but also no effect. so is there a way to strip the wrapping p tags while keeping possible tags inside the strings text body like e.g. a tags for links. Best regards Ralf

Answer

A. D&#39;Alfonso picture A. D'Alfonso · Feb 24, 2017

I know this is old but maybe it helps someone else.

I had the same issue and using "false, false" as second and third parameter for get_field did the trick.

$myField = get_field('field_name', false, false);

echo '<p class="custom-class">'.$myField.'</p>';