Entfernen von Inline-Stilen aus wp-caption div

13

Inline-Attribute für Breite und Höhe waren in WordPress nie ein großes Problem, da diese mit CSS leicht überschrieben werden konnten.

Das Problem, das ich habe, ist, dass alle Bilder mit Untertiteln in eine ID 'attachment _ (' attachmentnumber ') und eine Klasse von' wp-caption 'eingeschlossen werden, UND dass sie Inline-CSS-Eigenschaften für Breite und Höhe erhalten. Dies ist ein großer Schmerz im Hintern, daher möchte ich die Inline-Stile dieser Div entfernen, wenn dies überhaupt möglich ist.

Andy
quelle
1
Ich suchte nach einer Lösung für dieses Problem und fand, dass die Implementierung von Joots Kiens besser war. Infos zur Implementierung unter joostkiens.com/improving-wp-caption-shortcode . Quelle bei Github: gist.github.com/JoostKiens/4477366
swirv

Antworten:

4

Sie können Inline-Stile mit "! Important" wie folgt überschreiben:

width: 100px !important;

Wenn Sie eine PHP-Korrektur wünschen, schauen Sie sich diese an: 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>';
}

oder Javascript / JQuery:

$(".wp-caption").removeAttr('style');
Kim
quelle
! important wurde immer unterstützt, dieser Teil kann herausgeschnitten werden. Könnten Sie auch die PHP-Lösung in Ihre Antwort aufnehmen? Im Moment, wenn troychaplin.ca nach unten geht, wird diese Antwort nutzlos
Tom J Nowell