Как отобразить изображение записи (featured image)?
Я хочу получить URL "изображения записи" (featured image), чтобы использовать его в качестве фонового изображения для баннера в верхней части страницы. Фоновое изображение баннера меняется в зависимости от того, на какой странице я нахожусь, так как у них будут разные изображения записей.

Адаптировано из этой темы на форумах WP:
<?php if (has_post_thumbnail( $post->ID ) ): ?>
<?php $image = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'single-post-thumbnail'); ?>
<style>
#banner-id {
background-image: url('<?php echo $image[0]; ?>');
}
</style>
<?php endif; ?>
Добавьте этот код в шаблон отдельной записи после the_post()
. Рекомендуется задать изображение заголовка по умолчанию, чтобы при отсутствии миниаттуры записи использовался резервный вариант.
Вместо 'single-post-thumbnail'
можно указать массив с идеальными размерами заголовка, например array(600, 30)
.

Поскольку вы используете изображение вне цикла, вам сначала нужно получить ID записи. Затем используйте его для получения URL изображения записи.
function wpse207895_featured_image() {
// Выполняется, если это отдельная запись
if ( is_singular() ) {
$id = get_queried_object_id ();
// Проверяем, есть ли у записи/страницы изображение
if ( has_post_thumbnail( $id ) ) {
// Меняем размер миниатюры, но полный размер вероятно то, что вам нужно
$image = wp_get_attachment_image_src( get_post_thumbnail_id( $id ), 'full' );
$url = $image[0];
} else {
// Устанавливаем изображение по умолчанию, если изображение записи не задано
$url = '';
}
}
return $url;
}
Теперь вы можете использовать это для вывода URL изображения записи в заголовке.
<?php echo wpse207895_featured_image();?>
Например:
<header class="site-header" style="background-image: url('<?php echo wpse207895_featured_image();?>');">
....
....
</header>

Этот способ сработал для меня
Вы можете использовать миниатюру записи в качестве фонового изображения для элемента следующим образом -->
<?php $backgroundImg = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'full' );?>
<article class="banner" style="background-image(url('<?php echo $backgroundImg[0]; ?>'))"></article>
Но я бы рекомендовал использовать его в элементе изображения, в атрибуте 'src' -->
<article class="banner">
<?php $backgroundImg = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'full' );?>
<img src="<?php echo $backgroundImg[0]; ?>" alt="Миниатюра записи" title="Миниатюра записи">
</article>
и установить размер изображения в соответствии с размером элемента баннера.
