Menghapus Atribut Dimensi Gambar dan Teks

9

Pertanyaan ini adalah cabang dari diskusi ini tentang menghapus atribut dimensi dari gambar. Kode solusi yang disediakan pada utas itu berfungsi sangat baik kecuali bahwa ia memiliki efek samping yang disayangkan bahwa setiap [caption]kode pendek dilepaskan dari gambar.

Setelah beberapa jam menggali kode inti, saya menemukan penyebabnya. Plugin TinyMCE wpeditimage yang bertanggung jawab untuk menambahkan [caption]pemeriksaan kode pendek untuk atribut lebar dalam kode pendek dan imgtag. Jika tidak menemukan mereka, cukup hapus keterangannya. Karena ini dilakukan 'on the fly' dengan javascript di editor TinyMCE, saya tidak bisa memikirkan jenis filter WordPress apa pun yang akan mengatasi masalah ini. Saya akan sangat senang terbukti salah. :)

Sebagai catatan terakhir, solusi sementara saya adalah menggunakan jQuery berikut untuk menghapus semua sisi klien tag yang menyinggung. Ini, bersama dengan filter aktif img_caption_shortcodeuntuk mencegah gaya lebar digunakan di sana, tampaknya melakukan pekerjaan itu. Itu tidak cantik, tapi ini bantuan band untuk saat ini. Adakah yang punya ide yang lebih baik?

// Strip width and height attributes from img, video, and object in the main article so we can have fluid images
var $fluid_items = $('.main-article-wrapper').find('img,video,object');
$fluid_items.removeAttr('width');
$fluid_items.removeAttr('height');
Dominic P
sumber
Hmmm ... apakah bisa menggunakan editor visual sebagai persyaratan? Jika Anda hanya menggunakan editor HTML, filter pada img_caption_shortcode berfungsi dengan baik ...
goldenapples
@goldenapples, ya, saya tidak ingin kehilangan editor visual karena saya akan meminta orang-orang non-teknis mengedit situs. Terima kasih untuk sarannya. Ada ide lain?
Dominic P
Dominic, dapatkah Anda memberikan kode untuk "filter pada img_caption_shortcode untuk mencegah gaya lebar digunakan di sana"? Ini persis yang saya butuhkan, tetapi saya tidak tahu cara menulis filter itu.
@Wendy, hmm, saya tidak bisa menempel semuanya dalam komentar. Jika Anda ingin mengajukan pertanyaan lain dan memberi saya tautan ke sana, saya akan mempostingnya sebagai jawaban.
Dominic P
Jika Anda tidak ingin melalui semua itu, pada dasarnya saya hanya memodifikasi contoh Codex .
Dominic P

Jawaban:

18

mungkin bukan jawaban yang tepat yang Anda cari tetapi saya pikir saya baru saja menemukan solusi yang cukup bagus.

Iv'e mengambil kode berikut dari tema CSS dua puluh sebelas (siapa yang dengan rapi responsif):

/* Images */
.entry-content img,
.comment-content img,
.widget img {
    max-width: 97.5%; /* Fluid images for posts, comments, and widgets */
}
img[class*="align"],
img[class*="wp-image-"] {
    height: auto; /* Make sure images with WordPress-added height and width >attributes are scaled correctly */
}
img.size-full {
    max-width: 97.5%;
    width: auto; /* Prevent stretching of full-size images with height and >>width attributes in IE8 */
}

Ini sudah cukup untuk membuat semua gambar responsif (setidaknya yang tertanam dalam konten ...) Sekarang saya punya gambar responsif, tetapi ketika caption digunakan saya masih memiliki masalah yang sama, yang terjadi karena tinyMCE menambahkan atribut gaya ke wadah keterangan dengan lebar gambar. Untuk memperbaikinya yang harus saya lakukan adalah menambahkan ini ke CSS saya:

            .wp-caption { max-width: 100%; }

Selesai! berfungsi dengan baik untuk saya, meskipun mungkin tidak berfungsi untuk gambar unggulan.

Saya harap ini membantu seseorang :-)

Talbatz
sumber
Saya belum punya waktu untuk menguji ini sepenuhnya, tetapi sudah terbukti cukup berguna di bidang lain. Terima kasih untuk bantuannya.
Dominic P
kesenangan saya :-)
Talbatz
Mengujinya di IE9, tampaknya tidak berfungsi sebagaimana dimaksud!
Kuldeep Daftary
Ini bertentangan dengan browser IE lama
Tosh
solusi yang sangat hebat! thx
emjay