Как отобразить изображение записи (featured image)?

7 нояб. 2015 г., 18:20:42
Просмотры: 30.5K
Голосов: 6

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

0
Все ответы на вопрос 3
2

Адаптировано из этой темы на форумах 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).

7 нояб. 2015 г. 18:47:04
Комментарии

Рад помочь. Не могли бы вы пометить вопрос как решенный? Спасибо.

kittsville kittsville
8 нояб. 2015 г. 21:44:07

Однако не стоит помещать PHP в ваш CSS

JGallardo JGallardo
15 сент. 2017 г. 02:14:01
0

Поскольку вы используете изображение вне цикла, вам сначала нужно получить 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>
7 нояб. 2015 г. 18:52:14
0

Этот способ сработал для меня

Вы можете использовать миниатюру записи в качестве фонового изображения для элемента следующим образом -->

<?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>

и установить размер изображения в соответствии с размером элемента баннера.

14 мая 2020 г. 23:08:25