Додайте назву класу до мініатюри публікації


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

Але чи можете ви додати клас "вкладення- $ size my-class-name"
Simon Cooper

@SimonCooper Я це зробив, і зараз клас має вкладення - без розміру.
Zhianc

Це, як правило, погане і негенерічне рішення. Навіть вкладення жорсткого коду - розмір $, стирає всі можливі майбутні ін'єкції класу.
Fusion

7

Ви можете фільтрувати ці класи.

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) {
Simon Cooper

Назва є дещо описовою, і суфікс посилається на це питання. Інакше особливого значення немає. Зсередини екземпляра класу - скажімо клас плагінів - ви можете використовувати, 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.