การลบรูปแบบอินไลน์จาก div-caption wp


13

แอตทริบิวต์ความกว้างและความสูงแบบอินไลน์ไม่เคยเป็นปัญหาใหญ่สำหรับภาพใน WordPress เนื่องจากสิ่งเหล่านี้เขียนทับได้ง่ายด้วย CSS

ปัญหาที่ฉันมีอยู่ก็คือภาพที่มีคำบรรยายประกอบถูกแนบไว้ใน ID 'ไฟล์แนบ _ (' ไฟล์แนบ ') และคลาส' คำบรรยายภาพ 'และพวกเขาจะได้รับคุณสมบัติความกว้างและความสูงของ CSS แบบอินไลน์ นี่เป็นความเจ็บปวดครั้งใหญ่ในก้นดังนั้นฉันต้องการลบรูปแบบอินไลน์ของ div นี้หากเป็นไปได้


1
ฉันมองหาวิธีแก้ปัญหานี้ให้ดีและพบว่าการใช้งาน Joots Kiens ดีขึ้น ข้อมูลเกี่ยวกับการดำเนินงานจากjoostkiens.com/improving-wp-caption-shortcode แหล่งที่มาที่ Github: gist.github.com/JoostKiens/4477366
swirv

คำตอบ:


7

หากต้องการลบความกว้างแบบอินไลน์ในวิธีที่สะอาด PHP สามารถทำได้ด้วยตัวกรองตามที่อธิบายไว้ในซอร์สโค้ด: https://core.trac.wordpress.org/browser/trunk/src/wp-includes/media.php # L1587

การคืนค่าศูนย์ (หรือเท็จ) จะลบ:

add_filter( 'img_caption_shortcode_width', '__return_false' );

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 ลดลงคำตอบนี้จะไร้ประโยชน์
Tom J Nowell
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.