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>

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


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.


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'

)); ?>
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.