Встроенный HTML-фоновое изображение с использованием логики PHP?

Можно ли использовать мою логику PHP, используемую для отображения избранного изображения в WordPress-посте в качестве встроенного фонового изображения div? Вот моя попытка:

                <div class="rounding-image" style="background-image: url(
<?php
if ( $thumbnail == true ) {
// If the post has a feature image, show it
if ( has_post_thumbnail() ) {
the_post_thumbnail( $thumbsize );
// Else if the post has a mime type that starts with "image/" then show the image directly.
} elseif ( 'image/' == substr( $post->post_mime_type, 0, 6 ) ) {
echo wp_get_attachment_image( $post->ID, $thumbsize );
}
}
?>
)"></div>

Это не выбрасывает конкретную ошибку, а отображает )"> где изображение будет.

3

Решение

the_post_thumbnail отображает изображение с img тег. Что вы хотите сделать, это получить URL изображения

$thumb = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'full' ); $url = $thumb['0'];

if ( has_post_thumbnail() ) {echo $url;}
1

Другие решения

Мне нравится использовать background-size: cover, если его полная ширина. если это не просто удалить эту часть CSS

<?php if (has_post_thumbnail( $page->ID ) ) { ?>
<?php $image = wp_get_attachment_image_src( get_post_thumbnail_id( $page->ID ), 'single-post-thumbnail' ); ?>

<header style="background:url(<?php echo $image[0]; ?>) 50%  50% no-repeat;background-size: cover;-webkit-background-size: cover;-moz-background-size: cover;-o-background-size: cover;background-size: cover;"></header>

<?php } ?>
0

Используйте это, это установит фоновое изображение к избранному изображению, если оно существует. Это позволяет вам установить значение по умолчанию через CSS, если выбранное изображение не установлено.

<?php
global $post;
$src = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), array( 5600,1000 ), false, '' );
if ( has_post_thumbnail() ) :
?>

<div class="rounding-image" style="background: url(<?php echo $src[0]; ?> ) !important;">
<?php else : ?>
<div id="rounding-image">
0
По вопросам рекламы [email protected]