set_post_thumbnail_size vs add_image_size


11

Apa perbedaan antara set_post_thumbnail_size dan add_image_size? Apakah set_post_thumbnail_size untuk semua gambar, dan add_image_size untuk ukuran gambar satu per satu?

Terima kasih.

Jawaban:


26

Ketika suatu gambar diunggah di WordPress, gambar itu disimpan dalam ukuran aslinya, dan juga karena beberapa salinan ukurannya dalam ukuran yang berbeda. Dengan cara ini menjadi mudah untuk menggunakan ukuran yang berbeda, dari gambar yang sama, untuk tujuan berbeda.

Secara default, WordPress membuat 3 salinan dalam 3 ukuran berbeda:

  • 'thumb'
  • 'medium'
  • 'large'

Ukuran dalam piksel untuk 3 ukuran ini dapat diatur di dasbor WordPress, di bawah menu Settings -> Media.

Sekarang, fungsi add_image_sizeini digunakan untuk mendaftarkan ukuran baru, yang menambah 3 default.

Setiap ukuran terdaftar dapat diambil dengan menggunakan namanya, dalam beberapa fungsi WordPress, misalnya wp_get_attachment_image_src, wp_get_attachment_image, wp_get_attachment_link.

Semua fungsi ini menerima parameter $sizeyang harus merupakan nama dari salah satu ukuran yang terdaftar (salah satu dari 3 standar, atau salah satu ukuran khusus yang terdaftar add_image_size).

Jika 'full'digunakan sebagai $sizeargumen, gambar asli dikembalikan, yang tidak diubah ukurannya.

Selain fungsi yang disebutkan di atas, ada dua fungsi lain yang menggunakan ukuran gambar: get_the_post_thumbnaildan the_post_thumbnail.

Dua fungsi ini mendapatkan (yang pertama) dan gema (yang kedua) gambar yang ditetapkan sebagai "Gambar Unggulan" untuk posting.

Apa yang dikembalikan (atau digaungkan) oleh fungsi-fungsi ini adalah imgtag html lengkap , sesuatu seperti

<img scr="http://www.example.com/wp-content/2013/08/image-200x200.jpg" />

Jadi, mana ukuran yang digunakan?

Jika a $sizedilewatkan sebagai argumen ke-2 (ke-1 $postid), maka fungsi-fungsi ini mengembalikan gambar dalam ukuran itu. Jika tidak, fungsi-fungsi ini mencari ukuran gambar yang terdaftar dengan nama: post-thumbnail.

Ini bukan salah satu dari 3 ukuran standar, pada kenyataannya, ini adalah ukuran standar ke-4 (dianggap ke-5 full) dan Anda dapat mendaftarkannya dengan memanggil set_post_thumbnail_size.

Begitu

set_post_thumbnail_size( $width, $height, $crop );

adalah jalan pintas untuk

add_image_size( 'post-thumbnail', $width, $height, $crop );

Jika Anda belum menelepon set_post_thumbnail_size(yang berarti ukurannya 'post-thumbnail'tidak dibuat), WordPress akan menggunakan ukurannya thumb, dan jika ukuran ini tidak tersedia, WordPress akan menggunakan gambar aslinya, yang tidak diubah ukurannya.

Mendaftarkan ukuran gambar khusus dapat sangat membantu ketika merancang tema, tetapi penting untuk tidak menyalahgunakan: setiap gambar yang diunggah disalin dan diubah ukurannya untuk semua ukuran yang terdaftar, jadi mendaftarkan banyak ukuran akan sangat memperlambat proses pengunggahan gambar.

Sebuah catatan:

Ketahuilah bahwa ketika WordPress membuat salinan gambar berskala, itu tidak akan memperbesarnya, tetapi hanya membuat salinan yang lebih kecil: misalnya jika gambar aslinya adalah 400x500px, dan ukuran gambar 'sedang' adalah 800x600px, ukuran sedang dan lebih besar tidak dibuat.

Jadi mendaftarkan ukuran gambar tidak pernah memberikan keamanan bahwa file gambar untuk setiap ukuran yang terdaftar benar-benar ada di folder konten WordPress. Bahkan karena ukuran gambar yang terdaftar mudah berubah: mengubah pengaturan, mengganti tema, dll.

Ketika ukuran gambar berubah, karena alasan apa pun, perubahan itu berpengaruh pada gambar yang diunggah setelah perubahan itu; gambar yang diunggah sebelumnya tidak mengubah dimensi dan tidak diubah dan disimpan ulang.

Jika seseorang perlu mengandalkan ukuran gambar tertentu setelah beberapa gambar sudah diunggah (misalnya setelah mengubah tema), maka plugin Regenerate Thumbnails akan menjadi penyelamat.


2
Luar biasa. Saya akan mengklik 5 kali karena jawaban Anda tetapi situs tidak mengizinkannya. Terima kasih.
Greeso

Sama

Satu lagi questoin: Bagaimana jika saya belum memanggil set_post_thumbnail_size (yang berarti ukuran 'post-thumbnail' tidak dibuat, maka saya memanggil the_post_thumbnail. Apa yang akan terjadi? (Karena the_post_thumbnail akan mencoba menggunakan post-thumbnail sebagai param)
Greeso

@ GM, Jempol untuk penjelasan yang jelas
Istiaque Ahmed

Jawaban ini sangat membantu! Namun, saya pikir ini: set_post_thumbnail_size( 150, 150 ); If you haven't called set_post_thumbnail_size (which means the size 'post-thumbnail' is not created), WordPress will use the size thumb, and if even this size is not available, WordPress will use the original image, the one not resized. ... tidak benar. Dalam pengalaman saya menguji ini, jika set_post_thumbnail_size()belum dipanggil, WP kembali ke gambar ukuran penuh.
Travis Northcutt

1

Dari Codex:

set_post_thumbnail_size

Atur dimensi Gambar Unggulan default (sebelumnya Post Thumbnail). Untuk mendaftarkan ukuran gambar tambahan untuk Gambar Utama, gunakan: add_image_size ().

add_image_size

Mendaftarkan ukuran gambar baru. Ini berarti bahwa WordPress akan membuat salinan Gambar Unggulan (sebelumnya dikenal sebagai posting thumbnail) dengan dimensi yang ditentukan ketika Anda mengunggah gambar baru.


Bisakah saya menggunakan add_image_size tanpa menggunakan set_post_thumbnail_size?
Greeso

Ya tentu saja.
Krzysiek Dróżdż
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.