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
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.
Maybe a simple string replace?
Another option is PHP’s strip_tags function. This will remove all tags.
https://www.php.net/manual/en/function.strip-tags.php