the_post_thumbnail()
Выводит html код (<img> тег) картинки-миниатюры текущего поста.
Этот Тег шаблона должен использоваться внутри Цикла WordPress.
Используйте get_the_post_thumbnail(), когда нужно получить данные этой функции для обработки в PHP.
Дополнительный размер картинки, которую затем можно получить с помощью этой функции, можно создать через add_image_size(). По умолчанию доступны следующие размеры: thumbnail, medium, large, full, post-thumbnail.
Хуков нет.
Возвращает
null
. Выводит на экран строку. Функция выводит на экран html код картинки или пустое значение (null), если картинки не существует.
Использование
<?php the_post_thumbnail( $size, $attr ); ?>
- $size(строка/массив)
Размер миниатюры, которую нужно получить. Может быть строкой:
thumbnail
,medium
,large
,full
или массивом из двух элементов (ширина и высота картинки):array(32, 32)
.Когда указан массив, новая миниатюра с указанными размерами не создается. А WP ищет самый подходящий размер из тех что уже есть, берет его и просто указывает высоту и ширину в пикселях для тега IMG, чтобы уменьшить картинку. Т.е. картинка уменьшается только визуально.
По умолчанию: 'post-thumbnail', размер который устанавливается для темы функцией
set_post_thumbnail_size()
- $attr(строка/массив)
Массив атрибутов, которые нужно добавить получаемому html тегу img.
Можно указать строкой:
alt=альт&class=alignleft
или массивом:$default_attr = array( 'src' => $src, 'class' => "attachment-$size", 'alt' => trim(strip_tags( $wp_postmeta->_wp_attachment_image_alt )), );
Атрибуты можно указывать любые.
По умолчанию: ''
Примеры
Дополнительные примеры, то как стилизовать миниатюры и передавать атрибуты смотрите в описании функции get_the_post_thumbnail().
#1 Миниатюра-ссылка на оригинальный размер
Пример, показывающий как создать миниатюру, которая будет ссылаться на оригинальный размер картинки:
<?php if ( has_post_thumbnail()) { $large_image_url = wp_get_attachment_image_src( get_post_thumbnail_id(), 'large'); echo '<a href="' . $large_image_url[0] . '" title="' . the_title_attribute('echo=0') . '" >'; the_post_thumbnail('thumbnail'); echo '</a>'; } ?>
#2 Миниатюра как ссылка на пост
Пример 1: Используйте следующий код, чтобы сделать картинку-миниатюру ссылкой на пост. Пример для использования внутри Цикла WordPress:
<?php if ( has_post_thumbnail()) { ?> <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>" > <?php the_post_thumbnail(); ?> </a> <?php } ?>
Тоже самое с использование хука
Для этого используем хук post_thumbnail_html. В этом случае картинка будет ссылкой на пост сразу при вызове функции the_post_thumbnail(). Код нужно добавлять в файл шаблона functions.php:
add_filter( 'post_thumbnail_html', 'my_post_image_html', 10, 3 ); function my_post_image_html( $html, $post_id, $post_image_id ) { $html = '<a href="' . get_permalink( $post_id ) . '" title="' . esc_attr( get_post_field( 'post_title', $post_id ) ) . '">' . $html . '</a>'; return $html; }
#3 Регистрация нового размера
С помощью add_image_size() можно зарегистрировать новый размер и затем получить его по ключу:
// допустим в functions.php мы регистрируем дополнительный размер так: add_image_size( 'spec_thumb', 360, 240, true ); // далее в цикле выводим этот размер так: the_post_thumbnail( 'spec_thumb' );
Заметки
- Смотрите: get_the_post_thumbnail()
Список изменений
С версии 2.9.0 | Введена. |
Код the_post_thumbnail() the post thumbnail WP 6.2.2
function the_post_thumbnail( $size = 'post-thumbnail', $attr = '' ) { echo get_the_post_thumbnail( null, $size, $attr ); }