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

时间:2013-03-03 作者:andy

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

我遇到的问题是,任何带有标题的图像都被包装在ID“attachment\\u(\'attachmentnumber\')和一类“wp caption”中,并且它们被赋予了内联CSS宽度和高度属性。这是一个很大的麻烦,所以如果可能的话,我想删除这个div的内联样式。

2 个回复
SO网友:Johan Hermansson

可以使用过滤器以干净的PHP方式删除内联宽度,如源代码所述:https://core.trac.wordpress.org/browser/trunk/src/wp-includes/media.php#L1587

返回零(或false)将删除它:

add_filter( \'img_caption_shortcode_width\', \'__return_false\' );

SO网友:Kim

可以使用“!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\');

结束

相关推荐

Search posts by Tag

我希望我的搜索表单只显示按标记组织的结果。我知道你可以添加&tag=TAGNAME 但如何将其集成到表单中,以便我的网站只搜索包含与搜索框中输入的内容相同的标记的帖子?我在页面上有两个搜索,因此理想情况下,我希望能够通过HTML将其添加到表单中,而不是其他任何地方,但任何答案都可以:)谢谢