Функция the_post_thumbnail_url()
в WordPress используется для вывода URL миниатюры записи. Она позволяет получить ссылку на изображение, прикрепленное к посту как «миниатюра» (пост-изображение). Если у записи нет миниатюры, функция вернет null
. Эта функция часто используется в шаблонах, особенно при создании кастомных дизайнов для отображения изображений на сайте.
the_post_thumbnail_url( string|int[] $size = 'post-thumbnail' )
Параметры:
$size
(необязательный): строка или массив, определяющий размер изображения. Может принимать зарегистрированные размеры изображений, такие как'thumbnail'
,'medium'
,'large'
, либо массив, содержащий ширину и высоту в пикселях (например,[200, 300]
). По умолчанию —'post-thumbnail'
.
Возвращаемое значение:
- Функция возвращает
null
в случае отсутствия миниатюры или выводит URL изображения в зависимости от указанного размера.
Пример 1: Простое использование в шаблоне
В следующем примере URL миниатюры записи выводится в атрибуте src
тега img
. Здесь используется стандартный размер миниатюры записи:
<?php if ( has_post_thumbnail() ) : ?>
<img src="<?php the_post_thumbnail_url(); ?>" alt="<?php the_title(); ?>">
<?php endif; ?>
Что делает этот код:
- Проверяет, есть ли у записи миниатюра с помощью
has_post_thumbnail()
. - Если миниатюра существует, выводит тег
img
с URL изображения, полученного функциейthe_post_thumbnail_url()
.
Пример 2: Использование изображения как фона для блока div
В этом примере мы выводим миниатюру записи в качестве фонового изображения для блока div
. Это полезно, когда вы хотите использовать миниатюру в качестве фонового элемента, а не в теге img
.
<div class="post" style="background-image: url(<?php echo esc_url( the_post_thumbnail_url() ); ?>);">
<h2><?php the_title(); ?></h2>
</div>
Результат: Если у записи есть миниатюра, она будет использоваться как фоновое изображение для блока div
, а заголовок записи будет отображаться внутри этого блока.
Пример 3: Вывод миниатюры с кастомным размером
Функция позволяет указывать кастомные размеры миниатюр с помощью зарегистрированных размеров или путем передачи массива ширины и высоты. В этом примере мы указываем произвольный размер миниатюры (ширина 300px и высота 200px):
<?php if ( has_post_thumbnail() ) : ?>
<img src="<?php echo esc_url( the_post_thumbnail_url( array( 300, 200 ) ) ); ?>" alt="<?php the_title(); ?>">
<?php endif; ?>
Пример 4: Использование в цикле WordPress
В цикле WordPress вы можете использовать the_post_thumbnail_url()
для вывода миниатюр для каждой записи. Это особенно полезно, если вы создаете шаблоны для отображения нескольких постов.
<?php if ( have_posts() ) : ?>
<div class="post-list">
<?php while ( have_posts() ) : the_post(); ?>
<div class="post-item">
<img src="<?php echo esc_url( the_post_thumbnail_url( 'medium' ) ); ?>" alt="<?php the_title(); ?>">
<h3><?php the_title(); ?></h3>
</div>
<?php endwhile; ?>
</div>
<?php endif; ?>
Пример 5: Установка миниатюры как фона с проверкой существования
Чтобы избежать ситуации, когда запись не имеет миниатюры, можно использовать условие для проверки ее наличия и добавить fallback (резервный вариант):
<div class="post" style="background-image: url(<?php
if ( has_post_thumbnail() ) {
echo esc_url( the_post_thumbnail_url() );
} else {
echo esc_url( get_template_directory_uri() . '/images/default-thumbnail.jpg' );
}
?>);">
<h2><?php the_title(); ?></h2>
</div>
Как это работает
Функция the_post_thumbnail_url()
выводит URL миниатюры текущей записи. Она является оберткой для функции get_the_post_thumbnail_url()
, которая возвращает URL изображения, прикрепленного к посту как миниатюра. Если пост не имеет миниатюры, функция возвращает null
.
При вызове функции, URL автоматически очищается с помощью esc_url()
, что предотвращает возможные XSS-атаки.
Заключение
the_post_thumbnail_url()
— это удобная функция WordPress для вывода URL миниатюры записи. Она упрощает доступ к изображениям, прикрепленным к постам, и может быть использована для различных задач, от вывода изображений в тегах img
до использования миниатюр в качестве фоновых изображений.