Fügen Sie den Klassennamen hinzu, um die Miniaturansicht zu veröffentlichen

20

Ich verwende Post-Thumbnails, um auf eine Seite zu verlinken.

Ist es möglich, dem Miniaturbild des Beitrags einen Klassennamen hinzuzufügen?

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

Antworten:

42

Ja - Sie können die Klasse, die Sie verwenden möchten, beispielsweise the_post_thumbnail()als Teil des Attributarguments übergeben<?php the_post_thumbnail('thumbnail', array('class' => 'your-class-name')); ?>

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

Sabreuse
quelle
5
Aber das wird die Klasse entfernen attachment-$size.
fuxia
Aber können Sie die Klasse "Anhang- $ Größe mein-Klassenname" hinzufügen
Simon Cooper
@ SimonCooper habe ich und die Klasse hat jetzt Anhang - ohne die Größe.
Zhianc
Dies ist im Allgemeinen eine schlechte und nicht generische Lösung. Selbst wenn die Größe des Anhangs fest codiert ist, werden alle möglichen zukünftigen Klasseninjektionen gelöscht.
Fusion
6

Sie können diese Klassen filtern.

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

Fügen Sie den Filter hinzu, bevor Sie anrufen the_post_thumbnail. Der Filter entfernt sich automatisch.

Es ist ein bisschen schwierig, dorthin zu gelangen, aber es wird the_post_thumbnailverwendet, get_the_post_thumbnailwelche Verwendung wp_get_attachment_imagediesen Filter anwendet.

s_ha_dum
quelle
Hat der Funktionsname 'alter_attr_wpse_102158' eine bestimmte Bedeutung, könnte diese Funktion myClass - function myClass ($ attr) {
Simon Cooper
Der Name ist etwas beschreibend und das Suffix verweist auf diese Frage. Ansonsten keine besondere Bedeutung. In einer Klasseninstanz - sagen wir, eine Plugin-Klasse - können array($this,'methodname')Sie statische Klassen mit Filtern verwenden, indem Siearray('ClassName','methodname')
s_ha_dum am
1
Warum fügen Sie einen Filter hinzu, der sich selbst entfernt?
AlxVallejo
1
@AlxVallejo: Damit es nur einmal in dem bestimmten Umstand ausgeführt wird, dass Sie möchten, dass es ausgeführt wird.
s_ha_dum
0

Ihr Bild-Tag hat keine Klasse, Sie schreiben nur diesen Code, <?php the_post_thumbnail(); ?>aber Ihr Bild-Tag hat Klasse, Sie schreiben nur diesen Code

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

)); ?>
Sujan
quelle