Les attributs de largeur et de hauteur intégrés n'ont jamais été un gros problème avec les images dans WordPress, car ils étaient facilement écrasés avec CSS.
Le problème que je rencontre est que toutes les images avec des légendes sont encapsulées dans un ID 'attachment _ (' attachmentnumber ') et une classe de' wp-caption 'ET on leur attribue des propriétés de largeur et de hauteur CSS inline. Ceci est une douleur majeure dans les fesses, donc je voudrais supprimer les styles en ligne de cette div si possible.
Pour supprimer la largeur en ligne d'une manière propre, PHP pourrait être fait avec un filtre, comme décrit dans le code source: https://core.trac.wordpress.org/browser/trunk/src/wp-includes/media .php # L1587
Renvoyer un zéro (ou faux) l'enlèvera:
add_filter( 'img_caption_shortcode_width', '__return_false' );
Vous pouvez remplacer les styles en ligne par "! Important" comme ceci:
width: 100px !important;
Si vous voulez un correctif PHP, regardez 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');