Memastikan WordPress bermain dengan baik dengan gambar responsif

Pengarang: Louise Ward
Tarikh Penciptaan: 6 Februari 2021
Tarikh Kemas Kini: 18 Mungkin 2024
Anonim
Image SEO - The Ultimate Guide | Image SEO for WordPress
Video.: Image SEO - The Ultimate Guide | Image SEO for WordPress

Kandungan

  • Pengetahuan diperlukan: PHP dan CSS asas
  • Memerlukan: Pemasangan WordPress, penyunting teks pilihan
  • Masa projek: 10 minit

Sekiranya anda melanggan versi cetak majalah .net (jika tidak, mengapa tidak !?), anda akan melihat bahawa terbitan bulan ini mempunyai artikel yang sangat baik mengenai "Reka Bentuk Responsif dengan WordPress".

Dalam artikel itu, penulis Jesse Friedman menggariskan banyak teknik yang sangat berguna untuk memanfaatkan, dan mengatasi, fungsi WordPress yang wujud untuk menghasilkan laman web responsif yang benar-benar berkesan. Sekiranya anda berfikir untuk menghasilkan laman web yang responsif dengan WordPress, anda pasti harus mengambil salinan artikelnya. Ia mesti dibaca.

Baru-baru ini membina semula blog peribadi saya di WordPress menggunakan pendekatan responsif dan mudah alih, saya sudah biasa dengan beberapa teknik yang dibahas dalam artikel tersebut. Walau bagaimanapun, satu perkara yang benar-benar menonjol bagi saya adalah pendekatan Jesse untuk membolehkan gambar lancar melalui jQuery.


Masalah dengan WordPress dan "gambar lancar"

Seperti yang saya pasti anda semua maklum 'gambar lancar' - yang menggunakan lebar maksimum: 100% - mengharuskan gambar tidak mempunyai lebar atau tinggi yang tetap agar gambar itu dapat mencapai ukuran bekasnya. Sayangnya, WordPress secara automatik mengira dimensi gambar yang dihasilkan dari pustaka Media dan menambahkan atribut lebar dan tinggi yang sepadan dengan sebarang img> tag.

Ini bagus untuk kelajuan rendering halaman tetapi melemparkan a besar-besaran kunci pas dalam karya untuk membuat susun atur responsif kerana dimensi gambar tidak lagi dibatasi pada ukuran wadahnya.

Itu masalah.

Penyelesaian bukan jQuery

Dalam artikelnya Jesse ’mencadangkan penggunaan jQuery untuk membuang atribut lebar dan tinggi dari semua tag img> di halaman setelah dimuat. Ini tentu berjaya tetapi ketika membina laman web saya, saya tidak menyukai idea untuk bergantung pada JavaScript untuk mencapainya, terutamanya jika terdapat banyak gambar di halaman yang dimaksudkan.


Di sinilah penapis WordPress menyelamatkan.

Codex WordPress mentakrifkan penapis sebagai:

"... menghubungkan yang dilancarkan oleh WordPress untuk mengubah teks dari pelbagai jenis sebelum menambahkannya ke pangkalan data atau menghantarnya ke skrin penyemak imbas."

Ternyata inilah yang kita perlukan. Dengan menyiapkan penapis untuk berjalan pada semua gambar sebagai tindakan terakhir sebelum ditampilkan di halaman, kita dapat menggunakan PHP untuk menghapus atribut lebar dan tinggi sehingga menghindari keperluan manipulasi DOM (berpotensi) mahal melalui JavaScript.

Kodnya

  1. /**
  2. * FUNGSI GAMBAR RESPONSIF
  3. */
  4. add_filter ('post_thumbnail_html', 'remove_thumbnail_dimensions', 10);
  5. add_filter ('image_send_to_editor', 'remove_thumbnail_dimensions', 10);
  6. fungsi remove_thumbnail_dimensions ($ html)
  7. $ html = preg_replace ('/ (lebar)

Dalam kod di atas, kami menambahkan dua penapis menggunakan fungsi add_filter. Argumen pertama ialah penapis yang ingin kita sambungkan dan yang kedua menentukan fungsi yang ingin kita jalankan semasa penapis dipanggil.


Dalam kod kami, kami menghubungkan dua fungsi yang tidak jelas:

  1. post_thumbnail_html - gambar diambil dengan post_thumbnail ()
  2. image_send_to_editor - gambar ditambahkan ke editor

Kami kemudian menggunakan ungkapan biasa untuk menghilangkan atribut lebar dan tinggi dari tag gambar. Sekarang apabila gambar kita dihantar ke penyemak imbas, gambar tersebut dapat menjadi 'lancar' sepenuhnya seperti yang diberitahu oleh Mr Marcotte kepada kita.

Pengakuan

Saya harus mengaku mempunyai idea untuk menggunakan tambah_filter untuk membuang atribut yang saya tidak dapat sepanjang hayat saya mencari penapis WordPress yang betul untuk disambungkan.

Setelah banyak mencari, saya akhirnya menemui posting yang sangat bermanfaat ini di Wordpress Stack Exchange oleh Nathaniel Taintor yang memberikan maklumat mengenai dua saringan yang saya perlukan.

Kaveat

Sejauh yang saya tahu, satu-satunya kelemahan utama pendekatan ini ialah tidak menghilangkan atribut lebar dan tinggi dari semua gambar di laman web anda. Saya mendapati ini menjadi masalah, khasnya dengan gambar Gravatar yang digunakan WordPress dalam komen.

Sekiranya ada yang mempunyai penyelesaian untuk masalah ini, sila tinggalkan komen agar kita semua dapat memperoleh manfaat.

Saya harap ini berguna dan menunjukkan alternatif untuk bergantung pada JavaScript untuk melaksanakan "gambar lancar" di laman web WordPress.

Perkataan: David Smith

Dave Smith adalah pereka bahagian depan yang berpusat di dekat bandar Bath, UK yang indah. Apabila dia tidak mengusahakan projek web baru dan menarik, dia dapat bermain terompet dalam semua kumpulan, dari kumpulan jazz Big Band hingga orkestra Symphony. Anda boleh mengikuti Dave di Twitter sebagai @get_dave.

Pilihan Pembaca.
Tapak studio adalah keseronokan hitam dan putih
Menemui

Tapak studio adalah keseronokan hitam dan putih

dn & co adalah ebuah tudio kreatif yang berpu at di London, yang merangkumi penjenamaan, cetak, digital dan pameran. Ia mempunyai kema penjenamaan neutral yang dilucutkan, yang kebanyakannya mengg...
Bagaimana untuk memberi rasa CG pada seni Krismas anda
Menemui

Bagaimana untuk memberi rasa CG pada seni Krismas anda

ebilangan be ar karya kami di ArcMedia melibatkan vi uali a i ruang dalaman untuk pereka atau arkitek, menaf irkan kon ep mereka untuk menyampaikan repre enta i yang meyakinkan dari cadangan. etelah ...
5 perkara yang anda perlukan untuk lukisan minyak
Menemui

5 perkara yang anda perlukan untuk lukisan minyak

Terdapat mi tik yang tidak bera a mengenai luki an minyak yang membuat beberapa arti tidak dapat menerokai mereka. ekiranya anda mengetahui teknik meluki minyak yang betul, medium ini menawarkan kekay...