¿Cómo eliminar una p / p vacía en el shortcode wp caption?

2

Recientemente agregué un título a mi imagen en WordPress y ahora hay una etiqueta <p></p> vacía después de la etiqueta <img> . Se rompió mi estilo.

¿Alguien puede decir cómo quitarlo?

Gracias por la ayuda.

    
pregunta Bao 11.02.2017 - 14:44

4 respuestas

4

Eliminando wpautop :

Lo más probable es que sea wpautop . Para solucionarlo, primero escriba el siguiente CÓDIGO en el archivo functions.php de su tema:

remove_filter( 'the_content', 'wpautop' );
remove_filter( 'the_excerpt', 'wpautop' );

Si no resuelve el problema, puede significar que <p></p> ingresó en su base de datos o que tiene una nueva línea vacía dentro de su [caption][/caption] Shortcode. Ir a la publicación & elimine <p></p> o empty new line del modo Text del editor de WordPress

Eso debería resolver tu problema.

Solución CSS alternativa:

Puede usar el CÓDIGO CSS para ocultar <p></p> como se sugiere en esta respuesta . Sin embargo, con ese método, todavía estará en su HTML & no tiene sentido en crearlo y luego ocultarlo por completo con CSS. Es mejor eliminarlo en ese caso con el CÓDIGO anterior.

Sin embargo, si desea mantener wpautop por alguna razón (puede ser que lo esté usando para formatear en otra parte del sitio), puede orientar solo las etiquetas <p></p> dentro de los títulos con el siguiente CSS:

.wp-caption > p:empty  {
    display: none;
}

Esto mantendrá el formato de wpautop en otra parte de su sitio y al mismo tiempo resolverá el problema de visualización de los subtítulos.

    
respondido por el Fayaz 11.02.2017 - 16:41
0

También puedes eliminar esto usando str_replace para reemplazar las etiquetas p con the_content filter:

function wpse256087_content_filter($content) {

    $content = str_replace( '<p></p>', '', $content );

    return $content;
}

add_filter( 'the_content', 'wpse256087_content_filter' );
    
respondido por el Tunji 11.02.2017 - 17:27
0

No es una buena práctica anular la funcionalidad nativa de WordPress. En su lugar, puede ocultar los elementos vacíos utilizando CSS

p:empty  {
    display: none;
}

Esto hará que los elementos vacíos.

    
respondido por el Maqk 11.02.2017 - 19:08
0

Puedes hacer esto en el gancho do_shortcode_tag .

function remove_empty_wp_caption_text($output, $tag) {
  if ($tag === 'caption') {
    $output = str_replace('<p class="wp-caption-text"> </p>', '', $output);
  }

  return $output;
}
add_filter('do_shortcode_tag', 'remove_empty_wp_caption_text', 10, 2);

Lo bueno de este enfoque es que la función no se ejecutará a menos que se llame al [caption] shortcode.

    
respondido por el Jake Bellacera 07.11.2017 - 20:47

Lea otras preguntas en las etiquetas