WordPress как на ладони
rgbcode is looking for WordPress developers.

the_post_thumbnail()WP 2.9.0

Выводит html код (<img> тег) картинки-миниатюры текущего поста.

Этот Тег шаблона должен использоваться внутри Цикла WordPress.

Используйте get_the_post_thumbnail(), когда нужно получить данные этой функции для обработки в PHP.

Дополнительный размер картинки, которую затем можно получить с помощью этой функции, можно создать через add_image_size(). По умолчанию доступны следующие размеры: thumbnail, medium, large, full, post-thumbnail.

Работает на основе: get_the_post_thumbnail()
1 раз — 0.001739 сек (очень медленно) | 50000 раз — 6.79 сек (быстро) | PHP 7.1.2, WP 4.7.3

Хуков нет.

Возвращает

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().

5

#1 Миниатюра как ссылка на пост

Пример 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;

}
5

#2 Миниатюра-ссылка на оригинальный размер

Пример, показывающий как создать миниатюру, которая будет ссылаться на оригинальный размер картинки:

<?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>';
 }
 ?>
0

#3 Регистрация нового размера

С помощью add_image_size() можно зарегистрировать новый размер и затем получить его по ключу:

// допустим в functions.php мы регистрируем дополнительный размер так:
add_image_size( 'spec_thumb', 360, 240, true );

// далее в цикле выводим этот размер так:
the_post_thumbnail( 'spec_thumb' );

Заметки

Список изменений

С версии 2.9.0 Введена.

Код the_post_thumbnail() WP 6.4.3

function the_post_thumbnail( $size = 'post-thumbnail', $attr = '' ) {
	echo get_the_post_thumbnail( null, $size, $attr );
}
26 комментариев
Полезные 3Вопросы 2 Все
    Войти