ป้องกัน Wordpress ไม่ให้สร้างภาพที่อัพโหลดขนาดกลางขนาดใหญ่ 768px?


10

ฉันได้ปฏิบัติตามแนวทางเพื่อป้องกันไม่ให้ wordpress สร้างขนาดที่แตกต่างกันสำหรับแต่ละภาพที่อัพโหลดผ่านขนาดของภาพขนาดกลางและใหญ่ถึง 0 ในการตั้งค่า> สื่อและกำจัดอินสแตนซ์ทั้งหมดของ add_image_size และ set_post_thumbnail_size ในไฟล์ function.php กระทู้ อย่างไรก็ตามเมื่อฉันอัปโหลดภาพใหม่ Wordpress ยังคงสร้างรุ่นความกว้าง 768px เกินขนาดเต็มดั้งเดิม ฉันเชื่อว่ามีบางอย่างที่เกี่ยวข้องกับการอัปเดตนี้แต่ฉันสงสัยว่ามีวิธีป้องกันไม่ให้เกิดขึ้นหรือไม่ ฉันเชื่อว่าฉันได้อ่านหัวข้อที่ผู้คนประสบความสำเร็จโดยไม่ได้ตั้งใจพยายามทำอย่างอื่น แต่ฉันกำลังมองหาวิธีการที่ชัดเจน


คุณรู้หรือไม่ว่า WordPress ทำเช่นนี้เพื่อลดโหลดเซิร์ฟเวอร์และเพิ่มความเร็วไซต์ของคุณใช่ไหม
Kenneth Odle

คำตอบ:


16

ในการลบmedium_largeขนาดภาพคุณสามารถลองลบภาพด้วย intermediate_image_sizesฟิลเตอร์:

add_filter( 'intermediate_image_sizes', function( $sizes )
{
    return array_filter( $sizes, function( $val )
    {
        return 'medium_large' !== $val; // Filter out 'medium_large'
    } );
} );

ไม่แน่ใจว่าคุณกำลังพยายามลบขนาดกลางทั้งหมดหรือไม่ แต่คุณสามารถลองใช้งานได้:

add_filter( 'intermediate_image_sizes', '__return_empty_array', 999 );

โดยที่__return_empty_array() `เป็นฟังก์ชันแกนในตัว

เราควรทราบว่ามันเป็นไปไม่ได้ที่จะลบออกด้วย

remove_image_size( 'medium_large' );

เพราะมันไม่ได้ถูกเพิ่มเข้ามาด้วยadd_image_size()ดังนั้นจึงไม่ได้เป็นส่วนหนึ่งของ $_wp_additional_image_sizesอาร์เรย์ทั่วโลกหรือwp_get_additional_image_sizes();


ใช่มันเป็นไปได้ที่จะเปลี่ยนตัวmedium_large_size_wเลือกเป็น0แต่เราไม่สามารถทำได้/wp-admin/options.phpเพราะดูเหมือนว่าจะมีปัญหากับค่า 0 ที่นั่น (นั่นคือสิ่งที่ฉันพยายามครั้งแรกก่อนที่จะเขียนคำตอบ ;-) ดังนั้นเราจึงจำเป็นต้องตั้งค่า ผ่านการตั้งค่า API หรือด้วยตนเองในwp_optionsตาราง
Birgire

7

ลบขนาดภาพในลักษณะเดียวกับรหัสหลักของ wordpress:

add_filter('intermediate_image_sizes', function($sizes) {
    return array_diff($sizes, ['medium_large']);
});

โปรดทราบว่าmedium_largeโดยทั่วไปแล้วขนาดที่เหมาะสมที่จะมีอยู่srcsetให้ลบออกเมื่อคุณเข้าใจวิธีการsrcsetทำงานเท่านั้นหากคุณมีขนาดใกล้เคียงกัน


2

สิ่งนี้จะได้ผล


function paulund_remove_default_image_sizes( $sizes) {
    unset( $sizes['medium_large']);
    return $sizes;
}
add_filter('intermediate_image_sizes_advanced','paulund_remove_default_image_sizes');

https://developer.wordpress.org/reference/hooks/intermediate_image_sizes_advanced/


แม้ว่าสิ่งนี้จะไม่สร้างภาพ แต่มันก็สร้างรายการในอาร์เรย์สิ่งที่แนบมาดังนั้นรายการปลอมด้วยขนาด 769x ที่ส่วนท้ายของ URL การใช้ตัวกรองเริ่มต้นสื่อกลาง _image_sizes กำจัดภาพและไม่แสดงรายการในอาร์เรย์
lowtechsun
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.