Saya sedang mengerjakan tema yang memiliki sejumlah ukuran gambar yang didefinisikan dengan benar menggunakan:
add_image_size( 'name', 500, 200, true );
Saya ingin mengganti ukuran yang ditentukan ini dari tema anak:
add_image_size( 'new-name', 400, 300, true );
Saya tahu saya bisa menambahkan ukuran baru, tetapi jika saya menambahkan nama yang sama yaitu:
add_image_size( 'name', 400, 300, true );
Kemudian panggilan fungsi orang tua digunakan - anak yang diabaikan - menambahkan aturan tambahan menambahkan gambar tambahan yang tidak akan pernah digunakan - tidak begitu buruk, tetapi tidak efisien.
Apakah ada fungsi untuk membatalkan registrasi ukuran gambar yang ditambahkan?
Bersulang!
sinar
add_image_size()
panggilan hanya duduk telanjangfunctions.php
, atau mereka dibungkus dengan benar dalam panggilan balik, dan dihubungkanafter_setup_theme
? Mengetahui mana yang penting untuk menjawab pertanyaan Anda.Jawaban:
The
add_image_size( $name, $width, $height, $crop )
Fungsi cukup anggun untuk menangani beberapa panggilan menggunakan yang sama$name
. Itu hanya menimpa nilai yang ada :Jadi itu berarti semua yang perlu Anda lakukan untuk mengganti definisi Tema induk dari ukuran gambar khusus adalah untuk memastikan bahwa panggilan Anda akan
add_image_size()
diaktifkan setelah panggilan Tema induk .Dengan asumsi bahwa Tema Orangtua suka:
Kemudian
add_image_size()
panggilan Tema orangtua diaktifkan diafter_setup_theme
hook, pada prioritas default (yaitu10
).(Catatan: jika panggilan tidak dibungkus dengan panggilan balik, maka panggilan akan menjadi
plugins_loaded
prioritas utama10
.)Inilah bagian penting: file Tema anak
functions.php
diurai sebelum Tema orangtua , jadi jika Anda menggunakan kait yang sama untuk memecatadd_image_size()
panggilan Anda , mereka akan ditimpa olehadd_image_size()
panggilan Tema induk .Solusinya adalah dengan menggunakan pengait yang lebih baru atau prioritas yang lebih rendah , untuk memastikan bahwa
add_image_size()
panggilan Tema anak menyala setelah Tema induk.Ini harus melakukan trik, terlepas dari bagaimana Tema induk mengeluarkan panggilannya:
Perhatikan bahwa kami menggunakan
after_setup_theme
pengait yang sama , tetapi menggunakan prioritas yang lebih rendah (yaitu11
alih-alih10
. Callback diaktifkan secara berurutan dari prioritas yang lebih tinggi (angka yang lebih rendah) ke prioritas yang lebih rendah (angka yang lebih tinggi), dimulai dengan prioritas0
. Jadi panggilan balik yang dikaitkan dengan prioritas11
akan diaktifkan setelah panggilan balik yang diprioritaskan10
.Perhatikan juga bahwa
after_setup_theme
kait itu sendiri kebakaran setelah ituplugins_loaded
hook, sehingga callback ini masih akan menimpa orang tua Tema, bahkan jika orang tua Theme adalah_doing_it_wrong()
dengan tidak membungkus panggilan tersebut dalam callback yang tepat, ketagihan menjadi kait yang sesuai.sumber
Jika seseorang hanya ingin menghapus ukuran gambar tambahan, tidak seperti mengubah dimensi, gunakan remove_image_size (string $ name) , mis.
sumber
Dalam tema Chili Anda, Anda perlu menggunakan
add_action( 'after_setup_theme','new-name');
sumber
new-name
adalah nama panggilan balik yang tidak valid.