从wp-caption div中删除内联样式


13

内联的width和height属性对于WordPress中的图像从来都不是一个大问题,因为它们很容易被CSS覆盖。

我遇到的问题是任何带标题的图像都被包裹在ID'attachment _('attachmentnumber')和一类'wp-caption'中,并且它们被赋予内联CSS width和height属性。这是对接的主要痛苦,因此,如果可能的话,我想删除此div的内联样式。


1
我正在寻找解决方案,并发现Joots Kiens的实施效果更好。有关实现的信息,请参见joostkiens.com/improving-wp-caption-shortcode。来源:Github:gist.github.com/JoostKiens/4477366
swirv

Answers:



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

始终支持!important,可以将其编辑掉。如果您还可以采用PHP解决方案并将其放入答案中?如果troychaplin.ca失败,此答案将无用
汤姆·J·诺维尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.