add_image_size () untuk Jenis Posting tertentu

18
set_post_thumbnail_size( 80, 80, true ); // true for all post types

Misalkan saya memiliki dua jenis posting yang dimainkan di blog saya: Posting, Video dan Produk. Saya mungkin menginginkan ukuran gambar 80x80 untuk posting saya, tetapi 100x100 untuk video saya dan 50x100 untuk Produk saya. Sepengetahuan saya, saya terpaksa membuat thumbnail untuk gambar Post saya dalam dimensi 100x100 dan juga 50x100. Dan untuk produk saya, saya terpaksa membuat thumbnail yang berukuran 80x80 dan 100x100, meskipun saya tidak akan pernah menggunakannya.

Apakah ada cara untuk membuat ukuran gambar yang didasarkan pada jenis posting sehingga Anda tidak membuat banyak gambar yang tidak Anda rencanakan untuk digunakan, dan membuang-buang sumber daya yang dapat digunakan di tempat lain?

Sampson
sumber
Saya mengalami kebutuhan yang sama persis.
MikeSchinkel
Apa yang terjadi jika Anda menggunakan fungsi ini image_resize dalam tema di bagian mana Anda membutuhkan ukuran gambar itu?, Anda juga dapat menulis fungsi singkatan untuk beberapa penggunaan tergantung pada konteksnya.
Sepertinya pengawasan yang jelas bagi saya, apakah ini benar-benar masih belum diatasi?
Nathan Hornby

Jawaban:

12

Tidak ada cara untuk mendasarkan ukuran gambar pada jenis posting, karena gambar belum terpasang ke posting ketika Anda mengunggahnya dan ukuran gambar menengah dibuat (ketika Anda hanya menambahkannya melalui "Media Baru" mereka bahkan tidak dilampirkan ke semua posting sama sekali).

Namun, saya baru-baru ini membuat dua plugin yang bersama-sama akan melakukan apa yang Anda inginkan. Gambar perantara virtual akan mencegat pembuatan ukuran gambar perantara: mereka tidak akan dibuat pada disk, tetapi masih ada di array metadata. Ini membuat WordPress berpikir mereka ada sehingga Anda dapat menggunakannya seperti gambar normal. Plugin pendamping, On-Demand Resizer akan membuat ukuran gambar yang hilang saat diminta. Pertama kali gambar diminta dibuat, semua permintaan berikutnya hanya akan melayani gambar yang baru dibuat.

Plugin ini perlu ditulis ulang sebelum saya letakkan di direktori plugin WordPress, tetapi harus aman. Atau setidaknya ada TODOkomentar di mana mereka tidak aman.

Jan Fabry
sumber
Bagus!
MikeSchinkel
2

Saya memposting beberapa kode pada utas lain ini yang menetapkan transien dengan jenis posting saat mengunggah gambar, dan kemudian memeriksa nilai transien itu dan menyesuaikan ukuran post-thumbnail sesuai ketika upload selesai. Ini tidak sempurna atau anti peluru, tetapi harus menunjukkan konsep setidaknya.

lempengan emas
sumber
0

Saya datang dengan solusi berikut. Itu membuat gambar hanya untuk jenis posting kustom tanpa membuat yang tambahan. Satu-satunya masalah adalah bahwa jika Anda menggunakan plugin seperti bidang khusus lanjutan, saat mencoba merender bidang galeri, hanya menampilkan ukuran gambar wordpress default: 'thumbnail', 'sedang', 'besar' dan Anda tidak dapat mengakses ukuran gambar posting khusus yang dibuat .

if ( function_exists ('add_image_size') ) {

function remove_default_img($sizes) {
    unset( $sizes['medium']);
    unset( $sizes['large']); 
    return $sizes;
}
add_filter('intermediate_image_sizes_advanced', 'remove_default_img');

$type = get_post_type($_REQUEST['post_id']);
// Post_Name Image Sizes ======================================================
if ( $type === "Custom_Post_Name" || $post_type === "Custom_Post_Name" ) {
add_image_size('custom_size_img', 165, 249, true);
}

}

No.0n
sumber