Saya sedang membangun situs web anggota dengan WordPress Multisite. Apakah mungkin untuk membatasi berapa banyak gambar yang dihasilkan tergantung pada templat yang dipilih?
Saya telah mencoba baris kode berikut untuk menghasilkan gambar tertentu pada templat galeri:
// Generate on all uploads
add_theme_support('post-thumbnails');
set_post_thumbnail_size( 1440, 350, true );
add_image_size( 'standard_box', 450, 215, true );
add_image_size( 'default_image', 691, 9999 );
// Generate on gallery template only
if ( is_page_template('page-gallery.php') ) {
add_image_size( 'gallery', 900, 9999 );
add_image_size( 'gallery_thumb', 450, 450, true );
}
Ini tidak berhasil. Saya telah melakukan riset dan sepertinya tidak dapat menemukan apa pun tentang masalah ini. Jika Anda bisa mengarahkan saya ke arah yang benar, saya akan sangat menghargainya.
Jawaban:
Ini selalu menjadi momok bagi saya - kurangnya ukuran gambar berdasarkan permintaan, dan jumlah file selanjutnya yang bisa Anda dapatkan jika Anda memiliki banyak ukuran!
Saya dapat melihat logika di balik upaya Anda - masalahnya adalah,
add_image_size
hanya benar-benar berperan saat pengunggahan. Karena itu,is_page_template(..)
akan selalu adafalse
.Google cepat menggali Aqua Resizer , sebuah skrip yang dirancang untuk mengatasi masalah ini. Daripada menggunakan
add_image_size
, Anda menggunakanaq_resize
langsung dalam tema Anda, dan jika ukuran untuk gambar tidak ada, itu dibuat dan di-cache saat itu juga.Sebenarnya saya telah menggunakan teknik yang serupa, walaupun berbeda, pada beberapa situs dengan banyak ukuran gambar. Anda masih menyimpan overhead WordPress yang menghasilkan setiap ukuran untuk setiap gambar yang diunggah - mereka dihasilkan saat itu juga (& di-cache) saat dan ketika diminta. Perbedaannya adalah, Anda cukup menggunakan semua fungsi gambar standar dan tag templat WP seperti biasa!
Juga, seperti yang disebutkan @Waqas, menggunakan Aqua Resizer akan meninggalkan file yatim ketika Anda menghapus gambar dari perpustakaan media Anda. Dengan teknik saya, semua file akan dihapus, karena disimpan ke database & dikenali oleh WordPress.
Dan dalam praktiknya:
Saya bermaksud mengubah ini menjadi sebuah plugin yang secara otomatis akan mengubah semua
add_image_size
panggilan menjadi pengubahan ukuran sesuai permintaan, jadi perhatikan ruang ini!sumber
Penafian:
- Ini sebenarnya bukan jawaban.
- Hal ini dimaksudkan untuk membantu Anda dengan penelitian tambahan Anda pada topik.
- Selanjutnya adalah mencerminkan - setidaknya merasa - akhir-akhir ini lebih sering terjadinya pertanyaan serupa mengenai masalah yang sama.
Informasi tambahan mengenai topik ini tentang Pengembangan Wordpress:
Catatan: Daftar ini tidak disusun dan komprehensif dengan cara apa pun.
sumber
Jika Anda ingin membuat thumbs on the fly, Anda dapat menggunakan resizer gambar Aqua , Tetapi ada kelemahan dari skrip mini ini. Jempol yang dibuat tidak akan dihapus setelah menghapus gambar dari perpustakaan. Tapi ini bukan masalah besar. Jika perlu, Anda dapat melakukannya melalui perintah SHH
sumber
Itu bukan jawaban langsung untuk masalah Anda. Tetapi saya akan membantu Anda membuat gambar sesuai dengan kebutuhan Anda.
Saat Anda menggunakan add_image_size, itu tidak mengubah ukuran gambar yang ada. ini hanya berfungsi untuk gambar baru yang akan diunggah setelah menambahkan fungsi add_image_size Anda.
Jadi kode Anda tidak akan menghasilkan gambar baru untuk fungsi is_page_template.
Tetapi Anda dapat menggunakan kelas php sederhana untuk menyelesaikan masalah Anda .... ini adalah kelas php terkenal yang digunakan untuk banyak tema premium di luar sana untuk WordPress. Ini disebut Aqua-Resizer.
Anda dapat menemukan detail lebih lanjut di sini https://github.com/syamilmj/Aqua-Resizer Wiki: https://github.com/syamilmj/Aqua-Resizer/wiki
Masalah yang mungkin timbul:
Fungsi ini berfungsi seperti ini ....
Jadi ketika itu tidak dapat memotong (untuk gambar kecil yang tinggi atau lebar Anda ditentukan) itu tidak menunjukkan apa-apa. Anda dapat mengatasi situasi ini dengan memeriksa apakah Anda mendapatkan nilai nol setelah melewati url dalam fungsi ini dengan sangat mudah seperti milik saya di sini ....
Dengan cara ini Anda dapat memastikan bahwa gambar spesifik akan dihasilkan untuk templat halaman tertentu dan dengan cara ini situs web Anda akan jauh lebih bersih.
PS: kelas php ini menggunakan sistem pemotongan inti WordPress sehingga tidak ada masalah keamanan.
sumber