Adaugă numele clasei la imaginea reprezentativă a articolului
Folosesc imagini reprezentative pentru a face legături către o pagină.
Este posibil să adaug un nume de clasă la imaginea reprezentativă?
<li><a href="<?php the_permalink(); ?>" ><?php the_post_thumbnail(); ?></a></li>

Da - poți pasa clasa pe care vrei să o folosești la the_post_thumbnail()
ca parte din argumentul atributelor, de exemplu <?php the_post_thumbnail('thumbnail', array('class' => 'numele-clasei-tale')); ?>
Referință: http://codex.wordpress.org/Function_Reference/the_post_thumbnail#Styling_Post_Thumbnails

@SimonCooper Am făcut asta și acum clasa are attachment- fără dimensiune.

Puteți filtra acele clase.
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');
Adăugați filtrul chiar înainte să apelați the_post_thumbnail
. Filtrul se va elimina automat.
Este un pic mai complicat să ajungeți acolo, dar the_post_thumbnail
utilizează get_the_post_thumbnail
care folosește wp_get_attachment_image
care aplică acel filtru.

Are numele funcției 'alter_attr_wpse_102158' un sens anume sau această funcție ar putea fi numită myClass - function myClass($attr) {

Numele este oarecum descriptiv și sufixul face referire la această întrebare. Altfel, nu are un sens anume. Din interiorul unei instanțe de clasă - de exemplu o clasă de plugin - poți folosi array($this,'nume_metoda')
și poți folosi clase statice cu filtre folosind array('NumeClasa','nume_metoda')

http://codex.wordpress.org/Function_Reference/add_filter#Notes

Pentru majoritatea imaginilor de pe site-urile mele, adaug un element figure în jurul imaginilor, ca mai jos. În acest fel, păstrez totul intact și pot să folosesc o clasă în CSS pentru a stiliza elementul.
<?php if ( has_post_thumbnail() ) { ?>
<figure class="your-class">
<?php echo get_the_post_thumbnail(); ?>
</figure>
<?php } ?>

Mai 2021
Testat și funcționează pe WordPress 5.7 ✔
Implicit
Funcția implicită the_post_thumbnail()
va afișa toate atributele necesare din WordPress.
<?php the_post_thumbnail(); ?>
<!-- DOM -->
<img
src="http://example.com/wp-content/uploads/2021/04/your-image-1500x800-1.jpg"
class="attachment-post-thumbnail size-post-thumbnail wp-post-image"
alt=""
loading="lazy"
srcset="http://example.com/wp-content/uploads/2021/04/your-image-1500x800-1.jpg 1500w,
http://example.com/wp-content/uploads/2021/04/your-image-1500x800-1-300x160.jpg 300w,
http://example.com/wp-content/uploads/2021/04/your-image-1500x800-1-1024x546.jpg 1024w,
http://example.com/wp-content/uploads/2021/04/your-image-1500x800-1-768x410.jpg 768w"
sizes="(max-width: 1500px) 100vw, 1500px"
width="1500"
height="800"
>
Folosind atributul class
ca array
Folosind class
fără parametrul $size
sau cu $size
setat ca thumbnail
va elimina complet atributul srcset
. Pentru că de ce ai nevoie de responsivitate când dimensiunea este doar 150 x 150
.
<?php the_post_thumbnail(array('class' => 'classname')); ?>
<?php the_post_thumbnail('thumbnail' array('class' => 'classname')); ?>
<!-- DOM -->
<img
src="http://example.com/wp-content/uploads/2021/04/your-image-1500x800-1-150x150.jpg"
class="classname wp-post-image"
alt=""
loading="lazy"
width="150"
height="150"
>
srcset
va fi disponibil pentru alte dimensiuni în afară de thumbnail
. Dimensiunile disponibile sunt thumbnail
, medium
, large
, full
. Dimensiunile pot fi ajustate în WordPress 'Panou de control > Setări > Media'
thumbnail: 150px
medium: 300px
large: 1024px
full: Dimensiunea originală încărcată
Folosind dimensiunea medium
.
<?php the_post_thumbnail('medium' array('class' => 'classname')); ?>
<!-- DOM -->
<img
src="http://example.com/wp-content/uploads/2021/04/your-image-1500x800-1-300x160.jpg"
class="classname img-fluid wp-post-image"
alt=""
loading="lazy"
srcset="http://example.com/wp-content/uploads/2021/04/your-image-1500x800-1-300x160.jpg 300w,
http://example.com/wp-content/uploads/2021/04/your-image-1500x800-1-1024x546.jpg 1024w,
http://example.com/wp-content/uploads/2021/04/your-image-1500x800-1-768x410.jpg 768w,
http://example.com/wp-content/uploads/2021/04/your-image-1500x800-1.jpg 1500w"
sizes="(max-width: 300px) 100vw, 300px"
width="300"
height="160"
>
Folosind o funcție
Poți folosi o funcție pentru a adăuga clasa la postări (funcție furnizată de @s_ha_dum). Adaug clasa Bootstrap img-fluid
aici. Atenție! Citește până la capăt
// folosind funcția pentru a adăuga clasă la `the_post_thumbnail()`
function alter_attr_wpse_102158($attr) {
remove_filter('wp_get_attachment_image_attributes','alter_attr_wpse_102158');
$attr['class'] .= ' img-fluid';
return $attr;
}
add_filter('wp_get_attachment_image_attributes','alter_attr_wpse_102158');
Observă că clasa Bootstrap img-fluid
a fost adăugată la atributul class.
<?php the_post_thumbnail(); ?>
<!-- DOM -->
<img
src="http://example.com/wp-content/uploads/2021/04/your-image-1500x800-1.jpg"
class="attachment-post-thumbnail size-post-thumbnail img-fluid wp-post-image"
alt=""
loading="lazy"
srcset="http://example.com/wp-content/uploads/2021/04/your-image-1500x800-1.jpg 1500w,
http://example.com/wp-content/uploads/2021/04/your-image-1500x800-1-300x160.jpg 300w,
http://example.com/wp-content/uploads/2021/04/your-image-1500x800-1-1024x546.jpg 1024w,
http://example.com/wp-content/uploads/2021/04/your-image-1500x800-1-768x410.jpg 768w"
sizes="(max-width: 1500px) 100vw, 1500px"
width="1500"
height="800"
>
clasa din funcție dispare la al doilea post
Când folosești funcția, class
funcționează doar la primul post și dispare la al doilea.
Folosește clasa direct în the_post_thumbnail()
<?php the_post_thumbnail('full' array('class' => 'img-fluid')); ?>
Reține că atributul srcset
este inutil pentru thumbnail
.

Apelând ceva de genul the_post_thumbnail(array('class' => 'classname'));
va genera de fapt o serie de avertismente PHP. Dacă primul parametru este un array se așteaptă parametri pentru lățime și înălțime. De asemenea, va afișa în continuare valorile srcset dacă imaginea are alte dimensiuni.

În WordPress 5.7.1 nu se va întâmpla acest lucru. De asemenea, parametrul $size este opțional - (https://developer.wordpress.org/reference/functions/the_post_thumbnail/#parameters)

Am testat acest lucru pe versiunea 5.7.1 și am obținut srcset-uri cum era de așteptat. Parametrul $size
poate fi opțional, dar asta nu înseamnă că îl poți sări și să treci direct la următorul parametru. Dacă urmărești documentația prin the_post_thumbnail()
-> get_the_post_thumbnail()
-> wp_get_attachment_image()
, acel array este transmis ca $size
până la capăt, deoarece este primul parametru furnizat. Dacă dorești, poți să te alături The Loop Chat pentru o discuție mai amplă decât ce poate avea loc în comentariile de aici.
