Bagaimana cara menonaktifkan pembuatan ukuran gambar default untuk beberapa jenis posting khusus?

12

Saya menggunakan jenis posting khusus, di mana ukuran 'thumbnail', 'sedang' dan 'besar' tidak diperlukan. Saya perlu menonaktifkan ukuran ini dan membuat fungsi atau plugin, di mana saya dapat mengatur, ukuran gambar mana yang diperlukan untuk setiap jenis posting kustom.

Langkah pertama saya adalah mengaitkan fungsi get_intermediate_image_sizes dari wp-include / media.php. Saya telah menambahkan kode ini ke functions.php tetapi tidak berfungsi :(

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: Mengedit baris ini di media.php berfungsi. Jenis default setelah perubahan tidak menghasilkan.

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

Tapi bagaimana cara membuat kait saya bekerja?

Bohdan Hdal
sumber
1
ingin jawaban untuk ini juga
urok93
2
Itu bukan cara Anda menggunakan filter itu. Untuk menghapus ukuran default, Anda hanya perlu menambahkannya dengan prioritas sangat rendah dan mengembalikan array kosong. Namun itu tidak akan menyelesaikan masalah Anda, karena itu akan memengaruhi semua jenis posting. Saya tidak berpikir ada cara untuk melakukan apa yang Anda inginkan dalam versi WP saat ini. Coba minta WP devs untuk menambahkan $attachment_idargumen ke filter di dalam fungsi ini . Dengan begitu Anda dapat memeriksa jenis pos di dalam kait Anda
onetrickpony
Langkah saya hanya percobaan tetapi bukan solusi lengkap. Bagaimana saya bisa menggunakan filter dengan benar? PS Terima kasih atas tautannya ..
Bohdan Hdal
Adakah perubahan pada WP yang memungkinkan sekarang?
Mengemudi
Tidak ada perubahan. Masih masalah yang sama.
Bohdan Hdal

Jawaban:

7

Saya pikir satu-satunya solusi yang Anda miliki saat ini adalah menonaktifkan semua ukuran gambar menengah:

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

Dan kemudian secara manual menghasilkan mereka, tergantung pada jenis posting, dengan mengaitkan ke 'wp_generate_attachment_metadata', di mana Anda memiliki akses ke id lampiran (dan karena itu ke posting induknya):

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

  return $data;
}

add_filter( 'wp_generate_attachment_metadata', 'do_your_stuff', 10, 2 );
scribu
sumber
Apa parameter 10 & 2 yang Anda berikan ke add_filter terakhir?
Luke