suppression des styles en ligne de wp-caption div

13

Les attributs de largeur et de hauteur en ligne n'ont jamais été un énorme problème avec les images dans WordPress, car elles étaient facilement remplacées par CSS.

Le problème que j'ai est que toutes les images avec des légendes sont enveloppées dans un ID 'attachment _ (' attachmentnumber ') et une classe de' wp-caption 'ET on leur donne des propriétés CSS de largeur et de hauteur en ligne. C'est une douleur majeure dans le cul, donc j'aimerais supprimer les styles en ligne de cette div si possible.

Andy
la source
1
J'ai cherché une solution à ce problème et j'ai trouvé que la mise en œuvre de Joots Kiens était meilleure. informations sur la mise en œuvre à partir de joostkiens.com/improving-wp-caption-shortcode . Source sur Github: gist.github.com/JoostKiens/4477366
swirv

Réponses:

4

Vous pouvez remplacer les styles en ligne avec "! Important" comme ceci:

width: 100px !important;

Si vous voulez un correctif PHP, jetez un œil à ceci: 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>';
}

ou javascript / JQuery:

$(".wp-caption").removeAttr('style');
Kim
la source
! important a toujours été pris en charge, cette partie peut être éditée. Si vous pouviez également prendre la solution PHP et la mettre dans votre réponse? Pour le moment, si troychaplin.ca descend, cette réponse devient inutile
Tom J Nowell