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


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


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который применяет этот фильтр.


Имеет ли имя функции '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'

)); ?>
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.