Estoy usando un shortcode básico para envolver un texto en un div expandible. Lo que parece estar sucediendo es que el wpautop está insertando una etiqueta de párrafo de cierre al principio y una etiqueta de párrafo de apertura al final del contenido envuelto.
Así es como se ve en el editor:
[texto expandible="Mostrar contenido"]
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras Fermentum facilisis malesuada. Suspendisse potenti. Aenean dui turpis, Ornare in ipsum eget, vestibulum egestas nulla.
[/ expandible]
Y el HTML renderizado:
<div class="expandable"><a href="#" class="expand-link">Show Content</a></p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras fermentum facilisis malesuada. Suspendisse potenti. Aenean dui turpis, ornare in ipsum eget, vestibulum egestas nulla.</p>
<p></div>
Esta es la función de código abreviado:
function expandable_content_shortcode( $atts, $content = null ) {
$args = shortcode_atts( array(
'text' => __( 'View More', $this->plugin_slug ),
'linklocation' => 'top'
), $atts, 'expandable' );
if ( $args['linklocation'] === 'top' ) {
$output = '<div class="expandable-content"><a href="#" class="expand-link">' . $args['text'] . '</a>' . $content . '</div>';
} else {
$output = '<div class="expandable-content">' . $content . '<a href="#" class="expand-link">' . $args['text'] . '</a></div>';
}
return $output;
}