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.


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');

! 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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.