จะปิดการใช้งานการสร้างขนาดภาพเริ่มต้นสำหรับโพสต์แบบกำหนดเองบางประเภทได้อย่างไร


12

ฉันใช้ประเภทโพสต์ที่กำหนดเองโดยไม่ต้องใช้ 'รูปย่อ', 'กลาง' และ 'ใหญ่' ฉันต้องปิดการใช้งานขนาดนี้และสร้างฟังก์ชั่นหรือปลั๊กอินที่ฉันสามารถตั้งค่าขนาดภาพที่จำเป็นสำหรับการโพสต์ที่กำหนดเองแต่ละประเภท

ขั้นตอนแรกของฉันคือการเชื่อมต่อของฟังก์ชั่น get_intermediate_image_sizes จาก wp-include / media.php ฉันได้เพิ่มรหัสนี้ลงใน functions.php แต่มันไม่ทำงาน :(

add_filter('get_intermediate_image_sizes', 'get_intermediate_image_sizes_fixed');
function get_intermediate_image_sizes_fixed() {
    global $_wp_additional_image_sizes;
    //$image_sizes = array('thumbnail', 'medium', 'large'); // Standard sizes
    $image_sizes = array();
    if ( isset( $_wp_additional_image_sizes ) && count( $_wp_additional_image_sizes ) )
        $image_sizes = array_merge( $image_sizes, array_keys( $_wp_additional_image_sizes ) );
return apply_filters( 'intermediate_image_sizes', $image_sizes );
}   

UPD: การแก้ไขบรรทัดนี้ใน media.php ใช้งานได้ ประเภทเริ่มต้นหลังจากการเปลี่ยนแปลงที่ไม่ได้สร้าง

$image_sizes = array('thumbnail', 'medium', 'large');

แต่จะทำให้เบ็ดฉันทำงานได้อย่างไร


1
ต้องการคำตอบสำหรับเรื่องนี้ด้วย
urok93

2
นั่นไม่ใช่วิธีที่คุณใช้ตัวกรองนั้น หากต้องการล้างขนาดเริ่มต้นคุณเพียงแค่เพิ่มขนาดที่มีลำดับความสำคัญต่ำมากและส่งกลับอาร์เรย์ที่ว่างเปล่า อย่างไรก็ตามนั่นจะไม่สามารถแก้ปัญหาของคุณได้เนื่องจากจะมีผลกับโพสต์ทุกประเภท ฉันไม่คิดว่าจะมีวิธีการทำสิ่งที่คุณต้องการในรุ่น WP ปัจจุบัน ลองขอ devs WP เพื่อเพิ่ม$attachment_idอาร์กิวเมนต์กรองภายในนี้ฟังก์ชั่น ด้วยวิธีนี้คุณสามารถตรวจสอบประเภทโพสต์ในเบ็ดของคุณ
onetrickpony

ขั้นตอนของฉันเป็นเพียงการทดลอง แต่ไม่ใช่วิธีการแก้ปัญหาทั้งหมด ฉันจะใช้ตัวกรองได้อย่างถูกต้องได้อย่างไร? ป.ล. ขอขอบคุณสำหรับลิงค์ ..
Bohdan Hdal

การเปลี่ยนแปลงใด ๆ กับ WP ที่ทำให้เป็นไปได้ตอนนี้หรือไม่
Drivingralle

ไม่มีการเปลี่ยนแปลง. ยังคงเป็นปัญหาเดียวกัน
Bohdan Hdal

คำตอบ:


7

ฉันคิดว่าทางออกเดียวที่คุณมีในขณะนี้คือการปิดใช้งานขนาดภาพกลางทั้งหมด:

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

จากนั้นสร้างด้วยตนเองขึ้นอยู่กับประเภทโพสต์โดยเชื่อมต่อกับ 'wp_generate_attachment_metadata' ซึ่งคุณสามารถเข้าถึงรหัสสิ่งที่แนบมาได้ (ดังนั้นจึงเป็นโพสต์หลัก)

function do_your_stuff( $data, $attachment_id ) {
  // generate intermediate images

  return $data;
}

add_filter( 'wp_generate_attachment_metadata', 'do_your_stuff', 10, 2 );

พารามิเตอร์ 10 & 2 ที่คุณผ่านเข้าสู่ add_filter ล่าสุดคืออะไร
ลุค

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