¿Cómo mostrar la imagen destacada de una página?

7 nov 2015, 18:20:42
Vistas: 30.5K
Votos: 6

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.

0
Todas las respuestas a la pregunta 3
2

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).

7 nov 2015 18:47:04
Comentarios

Feliz de ayudar. ¿Podrías marcar la pregunta como respondida? Gracias.

kittsville kittsville
8 nov 2015 21:44:07

No deberías poner PHP en tu CSS

JGallardo JGallardo
15 sept 2017 02:14:01
0

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>
7 nov 2015 18:52:14
0

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.

14 may 2020 23:08:25