eliminar estilos en línea de wp-caption div

13

Los atributos de ancho y alto en línea nunca fueron un gran problema con las imágenes en WordPress, ya que se sobrescribían fácilmente con CSS.

El problema que tengo es que las imágenes con subtítulos se envuelven en un ID 'adjunto _ (' número de adjunto ') y una clase de' wp-caption 'Y se les dan propiedades de ancho y alto CSS en línea. Este es un gran dolor en el trasero, por lo que me gustaría eliminar los estilos en línea de este div si es posible.

andy
fuente
1
Busqué una solución para esto y encontré que la implementación de Joots Kiens era mejor. información sobre la implementación de joostkiens.com/improving-wp-caption-shortcode . Fuente en Github: gist.github.com/JoostKiens/4477366
swirv

Respuestas:

4

Puede anular estilos en línea con "! Important" como este:

width: 100px !important;

Si desea una solución PHP, eche un vistazo a esto: http://troychaplin.ca/2012/06/updated-function-fix-inline-style-that-added-image-caption-wordpress-3-4/

add_shortcode('wp_caption', 'fixed_img_caption_shortcode');
add_shortcode('caption', 'fixed_img_caption_shortcode');
function fixed_img_caption_shortcode($attr, $content = null) {
    if ( ! isset( $attr['caption'] ) ) {
        if ( preg_match( '#((?:<a [^>]+>\s*)?<img [^>]+>(?:\s*</a>)?)(.*)#is', $content, $matches ) ) {
        $content = $matches[1];
        $attr['caption'] = trim( $matches[2] );
        }
    }

    $output = apply_filters('img_caption_shortcode', '', $attr, $content);
    if ( $output != '' )
    return $output;

    extract(shortcode_atts(array(
        'id' => '',
        'align' => 'alignnone',
        'width' => '',
        'caption' => ''
    ), $attr));

    if ( 1 > (int) $width || empty($caption) )
    return $content;

    if ( $id ) $id = 'id="' . esc_attr($id) . '" ';

    return '<div ' . $id . 'class="wp-caption ' . esc_attr($align) . '" style="width: ' . $width . 'px">' . do_shortcode( $content ) . '<p>' . $caption . '</p></div>';
}

o javascript / JQuery:

$(".wp-caption").removeAttr('style');
Kim
fuente
! important siempre ha sido compatible, esa parte se puede editar. Si también pudieras tomar la solución PHP y ponerla en tu respuesta? Por el momento si troychaplin.ca deja de funcionar, esta respuesta se vuelve inútil
Tom J Nowell