¿Cómo mostrar la imagen destacada de una página?
Quiero obtener la URL de la "imagen destacada" de una página, ya que deseo usar la imagen destacada de la página como imagen de fondo para el banner en la parte superior. La imagen de fondo del banner cambia según la página en la que me encuentre, ya que tendrán diferentes imágenes destacadas.

Adaptado del hilo en los foros de 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; ?>
Añade esto a tu plantilla de página individual, después de the_post()
. Recomiendo tener una imagen de encabezado predeterminada para que, si la página no tiene una imagen destacada, recurra a usar esa.
'single-post-thumbnail'
puede ser reemplazado por un array con las dimensiones ideales del encabezado, como por ejemplo array(600, 30)
.

Como estás usando la imagen fuera del bucle, primero necesitas obtener el ID de la publicación. Luego, usa ese ID para obtener la URL de la imagen destacada.
function wpse207895_featured_image() {
// Ejecutar si es una publicación singular
if ( is_singular() ) {
$id = get_queried_object_id ();
// Verificar si la publicación/página tiene imagen destacada
if ( has_post_thumbnail( $id ) ) {
// Cambiar el tamaño de la miniatura, pero supongo que 'full' es lo que necesitarás
$image = wp_get_attachment_image_src( get_post_thumbnail_id( $id ), 'full' );
$url = $image[0];
} else {
// Establecer una imagen por defecto si la Imagen Destacada no está configurada
$url = '';
}
}
return $url;
}
Ahora puedes usar esto para mostrar la URL de la imagen destacada en el encabezado.
<?php echo wpse207895_featured_image();?>
Por ejemplo:
<header class="site-header" style="background-image: url('<?php echo wpse207895_featured_image();?>');">
....
....
</header>

Descubrí que esto funcionó para mí
Puedes usar la imagen destacada de la página como imagen de fondo para un elemento así -->
<?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>
Pero recomendaría usarla en un elemento de imagen, en el atributo '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="Imagen destacada">
</article>
y ajustar el tamaño de la imagen para que se adapte al tamaño que tenga el elemento banner.
