Tambahkan nama kelas untuk mengirim thumbnail

21

Saya menggunakan thumbnail posting untuk menautkan ke halaman.

Apakah mungkin untuk menambahkan nama kelas ke gambar thumbnail posting.

<li><a href="<?php the_permalink(); ?>" ><?php the_post_thumbnail(); ?></a></li>
Simon Cooper
sumber

Jawaban:

42

Yap - Anda dapat melewati kelas yang ingin Anda gunakan the_post_thumbnail()sebagai bagian dari argumen atribut, misalnya<?php the_post_thumbnail('thumbnail', array('class' => 'your-class-name')); ?>

Ref: http://codex.wordpress.org/Function_Reference/the_post_thumbnail#Styling_Post_Thumbnails

sabreuse
sumber
5
Tapi ini akan menghapus kelas attachment-$size.
fuxia
Tetapi bisakah Anda menambahkan kelas "lampiran- $ ukuran nama-kelas saya"
Simon Cooper
@SimonCooper yang saya lakukan dan kelas sekarang memiliki lampiran - tanpa ukuran.
Zhianc
Ini umumnya solusi buruk dan non-generik. Bahkan hardcoding attachment- $ size, menghapus semua kemungkinan suntikan kelas di masa depan.
Fusion
7

Anda bisa memfilter kelas-kelas itu.

function alter_attr_wpse_102158($attr) {
  remove_filter('wp_get_attachment_image_attributes','alter_attr_wpse_102158');
  $attr['class'] .= ' new-class';
  return $attr;
}
add_filter('wp_get_attachment_image_attributes','alter_attr_wpse_102158'); 

Tambahkan filter sesaat sebelum Anda menelepon the_post_thumbnail. Filter akan menghapus dirinya sendiri secara otomatis.

Ini adalah sedikit perjalanan ke sana tetapi the_post_thumbnailmenggunakan get_the_post_thumbnailyang menggunakan wp_get_attachment_imageyang berlaku filter itu.

s_ha_dum
sumber
Apakah nama fungsi 'alter_attr_wpse_102158' memiliki arti tertentu, apakah fungsi ini dapat disebut myClass - function myClass ($ attr) {
Simon Cooper
Namanya agak deskriptif dan sufiks merujuk pertanyaan ini. Kalau tidak, tidak ada makna tertentu. Dari dalam instance kelas - katakan kelas plugin - Anda dapat menggunakan array($this,'methodname')dan Anda dapat menggunakan kelas statis dengan filter dengan menggunakanarray('ClassName','methodname')
s_ha_dum
1
Mengapa Anda menambahkan filter yang menghapus sendiri?
AlxVallejo
2
@AlxVallejo: Sehingga hanya berjalan sekali dalam keadaan tertentu yang Anda inginkan dijalankan.
s_ha_dum
0

Tag gambar Anda tidak memiliki kelas Anda hanya menulis kode ini <?php the_post_thumbnail(); ?>tetapi tag gambar Anda memiliki kelas Anda hanya menulis kode ini

<?php the_post_thumbnail('thumbnail', array(
'class' => 'class_name'

)); ?>
sujan
sumber