Dodaj nazwę klasy, aby opublikować miniaturę


21

Korzystam z miniatur postów, aby połączyć się ze stroną.

Czy można dodać nazwę klasy do miniatury posta?

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

Odpowiedzi:


42

Tak - na przykład możesz przekazać klasę, której chcesz użyć, the_post_thumbnail()jako część argumentu atrybuty<?php the_post_thumbnail('thumbnail', array('class' => 'your-class-name')); ?>

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


5
Ale to usunie klasę attachment-$size.
fuxia

Ale czy możesz dodać klasę „załącznik-rozmiar-my-klasa-nazwa”
Simon Cooper

@SimonCooper Zrobiłem, a klasa ma teraz załącznik - bez rozmiaru.
Zhianc

Jest to ogólnie złe i nietypowe rozwiązanie. Nawet załącznik na stałe - rozmiar $, usuwa wszystkie możliwe zastrzyki klasy przyszłej.
Fusion

7

Możesz filtrować te klasy.

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'); 

Dodaj filtr tuż przed połączeniem the_post_thumbnail. Filtr usunie się automatycznie.

To jest trochę wędrówki się tam dostać, ale the_post_thumbnailwykorzystuje get_the_post_thumbnailktóry wykorzystuje wp_get_attachment_imagektórych stosuje się ten filtr.


Czy funkcja o nazwie „alter_attr_wpse_102158” ma szczególne znaczenie, czy można ją nazwać myClass - funkcja myClass ($ attr) {
Simon Cooper

Nazwa jest nieco opisowa, a sufiks odnosi się do tego pytania. W przeciwnym razie nie ma żadnego szczególnego znaczenia. Z wnętrza instancji klasy - powiedzmy klasy wtyczki - możesz używać array($this,'methodname')i możesz używać klas statycznych z filtrami, używającarray('ClassName','methodname')
s_ha_dum


1
Dlaczego dodajesz filtr, który sam się usuwa?
AlxVallejo

2
@AlxVallejo: Aby działał tylko raz w szczególnych okolicznościach, w których chcesz go uruchomić.
s_ha_dum

0

W tagu graficznym nie ma klasy, w której piszesz ten kod, <?php the_post_thumbnail(); ?>ale w tagu graficznym nie ma klasy, w której piszesz ten kod

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

)); ?>
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.