Saya sedang mengerjakan sebuah situs berdasarkan pada template cairan lebar CSS yang menetapkan lebar-maksimum pada gambar dengan lebar kolom yang memuatnya, dan saya perlu menghapus atribut dimensi lebar dan tinggi sebaris yang ditambahkan WordPress ke gambar.
Saya melakukannya dengan gambar unggulan saya dengan filter ini:
add_filter( 'post_thumbnail_html', 'remove_thumbnail_dimensions', 10, 3 );
function remove_thumbnail_dimensions( $html, $post_id, $post_image_id ) {
$html = preg_replace( '/(width|height)=\"\d*\"\s/', "", $html );
return $html;
}
Aku tahu aku bisa menerapkan filter yang sama untuk the_content , jika perlu. Tetapi apakah ada cara yang lebih baik untuk melakukan ini?
images
filters
post-thumbnails
lempengan emas
sumber
sumber
img_caption_shortcode
, yang memproses kode pendek teks, mengharuskan lebar ditentukan dalam atribut kode pendek teks. Jika tidak, itu akan melewatkan teks sama sekali dan hanya mengembalikan konten yang dibungkus dalam[caption]
tag kode pendek.img_caption_shortcode
. Menulis kode untuk fungsi seperti itu lebih dari yang bisa saya masukkan ke dalam komentar di sini.img_caption_shortcode
akan cukup menyelesaikan masalah.Jawaban:
Terima kasih semuanya!
The image_send_to_editor Filter adalah salah satu yang saya cari ... thanks @ t31os untuk menunjuk keluar.
Inilah fungsi saya sekarang.
Ini menghapus atribut dimensi sebaris dari gambar yang diambil dengan
the_post_thumbnail()
, dan mencegah atribut tersebut ditambahkan ke gambar baru yang ditambahkan ke editor. Tidak menghapusnya dari gambar yang diambil melaluiwp_get_attachment_image
atau fungsi terkait lainnya (tidak ada kait di sana), tetapi kasing tersebut dapat diproses dalam file templat bila perlu.sumber
image_send_to_editor
dan bukannya menambahkannyathe_content
- seperti posting blog ini . Ini memisahkan logika presentasi dari konten.Dimodifikasi skrip ini sedikit. Terima kasih untuk bantuannya!
sumber
jika Anda mengatur ukuran gambar di function.php sebagai "galeri"
Anda dapat menghapus lebar dan tinggi ukuran gambar tertentu seperti "galeri":
sumber
Menerapkan filter itu untuk
the_content
mengaktifkannya untuk semua konten. Ini akan efektif, tetapi dapat memengaruhi kinerja dan waktu buka situs Anda. Akan lebih baik jika Anda memberi tahu WordPress untuk tidak memasukkan inline width dan tag tinggi ketika Anda memasukkan gambar di tempat pertama.Sayangnya, skrip yang benar-benar menyisipkan gambar dibangun dalam JavaScript dan berinteraksi dengan editor TinyMCE wysiwyg. Mungkin ada cara untuk menghubungkannya secara langsung, tetapi tidak menggunakan
add_filter()
panggilan standar .sumber
image_send_to_editor
berfungsi di sini?