Saya mengalami beberapa masalah menghapus lebar dan tinggi dari gambar lampiran saya saat menggunakan wp_get_attachment_image. Inilah yang saya gunakan untuk menampilkan gambar
<?php echo $image = wp_get_attachment_image( $entry['slide_image_id'], true, 'full'); ?>
Bagaimana tampilannya kode sumbernya
<img width="150" height="108" src="http://website:8888/wp-content/uploads/2015/12/cupcakes-and-cosmetics-logo.png" class="attachment-1 size-1" alt="cupcakes-and-cosmetics-logo" />
Saya ingin ditampilkan seperti ini
<img src="http://website:8888/wp-content/uploads/2015/12/cupcakes-and-cosmetics-logo.png" class="attachment-1 size-1" alt="cupcakes-and-cosmetics-logo" />
Gambar ditarik dari bidang file berulang dengan entri dengan id dari slide_image_id. Saya telah melihat sekeliling dan memiliki pemberitahuan untuk menggunakan wp_get_attachment_image_url tetapi ketika saya menggunakannya dengan kode saya di atas gambar tidak ditampilkan. Apakah ada yang salah yang saya lakukan?
<?php echo $image = wp_get_attachment_image_url( $entry['slide_image_id'], true, 'full'); ?>
Catatan samping: $ entry ['slide_image_id'] adalah apa yang digunakan untuk memanggil bidang file berulang saya.
custom-field
attachments
images
pengguna3756781
sumber
sumber
wp_get_attachment_image_url()
mengembalikan URL - bukan elemen gambar.add_filter('wp_get_attachment_image_attributes' ...
kecuali hanya tinggi dan lebar yang dikodekan dengan keras.Jawaban:
Argumen Anda untuk keduanya
wp_get_attachment_image_url()
danwp_get_attachment_image()
berada di urutan yang salah - periksa detail dokumentasi yang ditautkan. Selain itu,wp_get_attachment_image_url()
mengembalikan URL - bukan elemen gambar yang sebenarnya.Sayangnya,
wp_get_attachment_image()
fungsi ini saat ini (pada WordPress 4.4.1) sulit dikodekan untuk menampilkanwidth
danheight
<img>
atribut (lihat tiket # 14110 ), jadi Anda harus membuat markup gambar sendiri. Ini dapat dilakukan dengan mengambil isyarat dariwp_get_attachment_image()
sumber :sumber
<img>
bit generasi atribut dariwp_get_attachment_image()
- meskipun aku ditinggalkansrcset
dansizes
suku cadang yang digunakan untuk gambar responsif. Jika ini diperlukan, membuat fungsiget_sizeless_attachment_image()
akan disarankan.Penanganan masalah
Saya melakukan beberapa penggalian inti / pengujian dan menemukan solusi melalui
wp_constrain_dimensions
filter:Hal ini tampaknya memungkinkan kita untuk menghapus atribut tinggi dan lebar dari html gambar yang dihasilkan
wp_get_attachment_image()
, tanpa mengeluarkan aturan reg-ex. Kita juga bisa menggunakanwp_get_attachment_image_src
filter dengan cara yang mirip untuk menghapus lebar / tinggi tetapi tetap url .Catatan
Pemecahan masalah ini akan menghapus
srcset
dansizes
atribut juga. Tetapi juga dimungkinkan untuk mengatur atribut srcset dan ukuran melalui$attr
argumen input keempat .Seperti yang disebutkan oleh @bosco, Anda telah mengganti ikon dan argumen input ukuran di:
Gunakan ini sebagai gantinya:
sumber
Saya hanya menggunakan CSS untuk yang satu ini. Ini tidak berfungsi di semua skenario, tetapi cukup sering. Mari kita ambil gambar 300px x 300px:
Ini membatasi dimensi gambar tanpa kehilangan rasio lebar ke tinggi. Kalau tidak, Anda juga dapat menggunakan REGEX:
Ini adalah beberapa alternatif. Semoga berhasil.
sumber