Добавить имя класса, чтобы опубликовать миниатюру

21

Я использую миниатюры постов для ссылки на страницу.

Можно ли добавить имя класса в миниатюру сообщения.

<li><a href="<?php the_permalink(); ?>" ><?php the_post_thumbnail(); ?></a></li>
Саймон Купер
источник

Ответы:

42

Да - вы можете передать класс, который вы хотите использовать, the_post_thumbnail()как часть атрибута атрибута, например<?php the_post_thumbnail('thumbnail', array('class' => 'your-class-name')); ?>

Ссылка: http://codex.wordpress.org/Function_Reference/the_post_thumbnail#Styling_Post_Thumbnails

sabreuse
источник
5
Но это удалит класс attachment-$size.
fuxia
Но можете ли вы добавить класс "вложение-$ размер моего-имя-класса"
Саймон Купер
@SimonCooper Я сделал, и у класса теперь есть приложение - без размера.
Жианц
Это вообще плохое и не универсальное решение. Даже жестко закодированное вложение размером $ стирает все возможные инъекции класса в будущем.
Fusion
8

Вы можете отфильтровать эти классы.

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

Добавьте фильтр непосредственно перед звонком the_post_thumbnail. Фильтр удалит себя автоматически.

Это немного трек, чтобы добраться туда, но the_post_thumbnailиспользует, get_the_post_thumbnailкоторый использует, wp_get_attachment_imageкоторый применяет этот фильтр.

s_ha_dum
источник
Имеет ли имя функции 'alter_attr_wpse_102158' конкретное значение, можно ли эту функцию назвать myClass - функция myClass ($ attr) {
Саймон Купер
Название является несколько описательным, и суффикс ссылается на этот вопрос. Иначе особого смысла нет. Внутри экземпляра класса, скажем, класса плагина, array($this,'methodname')вы можете использовать статические классы с фильтрами, используяarray('ClassName','methodname')
s_ha_dum
1
Почему вы добавляете фильтр, который удаляет сам себя?
AlxVallejo
2
@AlxVallejo: чтобы он запускался только один раз при определенных обстоятельствах, когда вы хотите, чтобы он работал.
s_ha_dum
0

Ваш тег изображения не имеет класса, вы просто пишете этот код, <?php the_post_thumbnail(); ?>но ваш тег изображения имеет класс, вы просто пишете этот код

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

)); ?>
Суджан
источник