Apakah mungkin mengatur gambar yang ditampilkan dengan URL gambar eksternal
20
Saya tahu ada plugin yang mengambil gambar dari URL jarak jauh dan menyimpan secara lokal. Saya hanya ingin tahu apakah mungkin untuk tidak menyimpan gambar di Media Library namun menggunakannya sebagai Featured Image ?
Anda bisa melakukannya dengan bidang khusus tempat Anda menyimpan URL gambar eksternal. Mungkin sulit untuk membuatnya bekerja setiap kali the_post_thumnail()hadir (atau serupa fungsi) atau untuk membuatnya bekerja dengan gambar yang berbeda ukuran ditentukan oleh tema atau plugin yang.
Apakah itu menyimpan gambar secara lokal atau menelepon dari jarak jauh?
Volatil3
@ Volatil3 Saya belum menguji tetapi membaca deskripsi plugin saya akan mengatakan itu memanggilnya dari jarak jauh.
Andy Macaulay-Brook
Jawaban:
35
Ya, itu mungkin dan sangat mudah.
Ini adalah alur kerja yang saya sarankan:
Letakkan UI di suatu tempat untuk menyisipkan URL gambar yang ditampilkan. Mungkin pilihan terbaik adalah dengan menggunakan 'admin_post_thumbnail_html'hook filter
Gunakan 'save_post'kait tindakan untuk menyimpan URL (setelah rutinitas keamanan dan validasi) dalam meta pos kustom
Gunakan 'post_thumbnail_html'kait filter untuk menampilkan <img>markup yang tepat , menimpa default, jika posting yang memerlukan gambar unggulan memiliki meta posting dengan gambar unggulan eksternal
Selain itu, kita harus yakin bahwa '_thumbnail_id'nilai meta memiliki nilai tidak kosong ketika kita menetapkan meta untuk URL eksternal, jika tidak has_post_thumbnail()akan mengembalikan false untuk posting yang hanya memiliki gambar fitur eksternal.
Bahkan, ada kemungkinan bahwa sebuah postingan memiliki gambar fitur lokal standar dan satu set melalui alur kerja kami, dan dalam hal ini eksternal akan digunakan.
Untuk menerapkan alur kerja kami, kami memerlukan fungsi untuk memvalidasi URL yang digunakan sebagai gambar berfitur eksternal, karena kami harus yakin itu adalah URL gambar yang valid.
Ada berbagai cara untuk melakukan tugas ini; di sini saya menggunakan cara yang sangat sederhana yang hanya melihat URL, tanpa mengunduh gambar. Ini hanya berfungsi untuk URL gambar statis dan tidak memverifikasi bahwa gambar itu benar-benar ada, tetapi cepat. Ubah ke sesuatu yang lebih maju jika Anda perlu (di sini ada bantuan).
Fungsi, setelah beberapa pemeriksaan keamanan, melihat URL yang diposting dan jika tidak apa-apa, simpan dalam '_thumbnail_ext_url'meta pos. Jika URL kosong dan meta disimpan, itu dihapus, memungkinkan untuk menghapus meta hanya dengan mengosongkan bidang URL eksternal.
Hal terakhir yang harus dilakukan adalah menampilkan markup gambar unggulan ketika URL gambar eksternal kami diatur dalam meta:
Dalam output gambar yang ditampilkan, saya tidak pernah menggunakan widthatau heightproperti, atau kelas yang biasanya ditambahkan, seperti WordPress 'attachment-$size'. Itu karena mengendus ukuran gambar memerlukan kerja ekstra yang akan memperlambat pemuatan halaman, terutama jika Anda memiliki lebih dari satu gambar unggulan di halaman.
Jika Anda memerlukan atribut tersebut, Anda dapat menggunakan kode saya menambahkan panggilan balik untuk wp_get_attachment_image_attributes'memfilter (ini adalah pengait WordPress standar ) atau mungkin Anda dapat mengubah kode saya untuk mengendus ukuran gambar dan menampilkan atribut dan kelas yang terkait.
Pengaya Plugin
Semua kode yang diposting di sini, dengan pengecualian menambahkan inisialisasi domain teks yang tepat, tersedia sebagai plugin yang berfungsi penuh dalam Gist di sini . Kode di sana menggunakan namespace, sehingga membutuhkan PHP 5.3+.
Catatan
Tentu saja, Anda harus yakin bahwa Anda memiliki lisensi dan otorisasi untuk menggunakan dan hotlink gambar di situs Anda dari yang eksternal.
bisa tolong jelaskan kode mana, di halaman mana kita harus menulis. Saya seorang pemula di PHP / Wordpress jadi tolong jelaskan langkah demi langkah. Terima kasih
the_post_thumnail()
hadir (atau serupa fungsi) atau untuk membuatnya bekerja dengan gambar yang berbeda ukuran ditentukan oleh tema atau plugin yang.Jawaban:
Ya, itu mungkin dan sangat mudah.
Ini adalah alur kerja yang saya sarankan:
'admin_post_thumbnail_html'
hook filter'save_post'
kait tindakan untuk menyimpan URL (setelah rutinitas keamanan dan validasi) dalam meta pos kustom'post_thumbnail_html'
kait filter untuk menampilkan<img>
markup yang tepat , menimpa default, jika posting yang memerlukan gambar unggulan memiliki meta posting dengan gambar unggulan eksternalAgar berhasil, alur kerja ini membutuhkan gambar unggulan untuk ditampilkan di templat menggunakan
get_the_post_thumnbail()
atauthe_post_thumbnail()
fungsi.Selain itu, kita harus yakin bahwa
'_thumbnail_id'
nilai meta memiliki nilai tidak kosong ketika kita menetapkan meta untuk URL eksternal, jika tidakhas_post_thumbnail()
akan mengembalikan false untuk posting yang hanya memiliki gambar fitur eksternal.Bahkan, ada kemungkinan bahwa sebuah postingan memiliki gambar fitur lokal standar dan satu set melalui alur kerja kami, dan dalam hal ini eksternal akan digunakan.
Untuk menerapkan alur kerja kami, kami memerlukan fungsi untuk memvalidasi URL yang digunakan sebagai gambar berfitur eksternal, karena kami harus yakin itu adalah URL gambar yang valid.
Ada berbagai cara untuk melakukan tugas ini; di sini saya menggunakan cara yang sangat sederhana yang hanya melihat URL, tanpa mengunduh gambar. Ini hanya berfungsi untuk URL gambar statis dan tidak memverifikasi bahwa gambar itu benar-benar ada, tetapi cepat. Ubah ke sesuatu yang lebih maju jika Anda perlu (di sini ada bantuan).
Sangat mudah. Sekarang mari kita tambahkan 3 kait yang dijelaskan dalam alur kerja di atas:
dan fungsi terkait. Pertama yang menampilkan bidang di admin:
Perhatikan bahwa saya telah menggunakan
'txtdomain'
sebagai domain teks, tetapi Anda harus menggunakan domain teks terdaftar yang benar.Beginilah tampilan output saat kosong:
Dan inilah tampilannya setelah menambahkan URL gambar dan menyimpan / memperbarui posting:
Jadi, sekarang UI admin kami selesai, mari kita tulis rutin menyimpan:
Fungsi, setelah beberapa pemeriksaan keamanan, melihat URL yang diposting dan jika tidak apa-apa, simpan dalam
'_thumbnail_ext_url'
meta pos. Jika URL kosong dan meta disimpan, itu dihapus, memungkinkan untuk menghapus meta hanya dengan mengosongkan bidang URL eksternal.Hal terakhir yang harus dilakukan adalah menampilkan markup gambar unggulan ketika URL gambar eksternal kami diatur dalam meta:
Kita sudah selesai.
Apa yang tersisa untuk dilakukan
Dalam output gambar yang ditampilkan, saya tidak pernah menggunakan
width
atauheight
properti, atau kelas yang biasanya ditambahkan, seperti WordPress'attachment-$size'
. Itu karena mengendus ukuran gambar memerlukan kerja ekstra yang akan memperlambat pemuatan halaman, terutama jika Anda memiliki lebih dari satu gambar unggulan di halaman.Jika Anda memerlukan atribut tersebut, Anda dapat menggunakan kode saya menambahkan panggilan balik untuk
wp_get_attachment_image_attributes'
memfilter (ini adalah pengait WordPress standar ) atau mungkin Anda dapat mengubah kode saya untuk mengendus ukuran gambar dan menampilkan atribut dan kelas yang terkait.Pengaya Plugin
Semua kode yang diposting di sini, dengan pengecualian menambahkan inisialisasi domain teks yang tepat, tersedia sebagai plugin yang berfungsi penuh dalam Gist di sini . Kode di sana menggunakan namespace, sehingga membutuhkan PHP 5.3+.
Catatan
Tentu saja, Anda harus yakin bahwa Anda memiliki lisensi dan otorisasi untuk menggunakan dan hotlink gambar di situs Anda dari yang eksternal.
sumber