удаление встроенных стилей из div wp-caption

13

Встроенные атрибуты ширины и высоты никогда не были большой проблемой с изображениями в WordPress, поскольку они легко переписывались с помощью CSS.

Проблема, с которой я сталкиваюсь, заключается в том, что любые изображения с заголовками заключаются в идентификатор 'attachment_ (' attachmentnumber ') и класс' wp-caption ', и им присваиваются встроенные свойства ширины и высоты CSS. Это большая боль в заднице, поэтому я хотел бы удалить встроенные стили этого div, если это вообще возможно.

Энди
источник
1
Я искал решение для этого колодца и нашел реализацию Joots Kiens лучше. Информация о реализации от joostkiens.com/improving-wp-caption-shortcode . Источник на Github: gist.github.com/JoostKiens/4477366
swirv

Ответы:

4

Вы можете переопределить встроенные стили с помощью "! Important" следующим образом:

width: 100px !important;

Если вы хотите исправить PHP, взгляните на это: 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>';
}

или javascript / JQuery:

$(".wp-caption").removeAttr('style');
Ким
источник
! важный всегда был поддержан, эта часть может быть удалена. Если бы вы могли также взять решение PHP и вставить его в свой ответ? В тот момент, когда troychaplin.ca выходит из строя, этот ответ становится бесполезным
Том Дж. Новелл