Obtener WordPress Imagen destacada “alt”

3 minutos de lectura

Estoy tratando de obtener la imagen alternativa de una página y repetirla como texto de párrafo, pero mi código no parece funcionar.

Actualmente puedo hacer eco de la imagen y funciona perfectamente.

Aquí está el código que estoy usando:

    <?php
    get_header(); ?>
      </div>
    <?php /* The loop */ ?>
    <?php while ( have_posts() ) : the_post(); ?>
    <div class="header-image">

    <?php echo get_the_post_thumbnail($page->ID, 'full'); ?> 
    
    <?php $alt = get_post_meta( $attachment_img->ID, '_wp_attachment_image_alt', true ); ?>
    
    <p><?php echo $alt; ?></p>
    
    </div>

  • ¿Tiene un campo personalizado llamado _wp_attachment_image_alt asociado con la publicación? Además, te sugiero que hagas var_dump($alt) justo antes de repetirlo para que pueda ver si es nulo y su tipo.

    – Dzhuneyt

    9 oct 2013 a las 9:14


  • Hola, no, no tengo ningún campo personalizado, debería extraer el alt de los atributos de la imagen destacada

    – babusi

    9 oct 2013 a las 9:36

  • ¿Está tratando de obtener la imagen destacada de la publicación o de la página? ¿Puede verificar $attachment_img->ID y ver si tiene la identificación correcta? o cualquier valor?

    – jnhghy – Alexandru Jantea

    9 oct 2013 a las 12:32


avatar de usuario
gregmatys

Compruebe si obtiene la identificación de miniatura correcta.
Para mí este código funciona perfecto:

$thumbnail_id = get_post_thumbnail_id( $post->ID );
$alt = get_post_meta($thumbnail_id, '_wp_attachment_image_alt', true);

  • Cada vez que uso este código, muestra el ID en la pantalla. ¿Cómo hago para que deje de hacer eso?

    – pixelkicks

    9 de abril de 2014 a las 8:20

  • Extraño. ¿Estás seguro de que estas dos líneas están haciendo eso? Ninguna de estas funciones imprime nada. Ambas cosas get_post_thumbnail_id y get_post_meta solamente devolver valores (sin mostrarlos). ¿Podrías pegar tu código?

    – gregmatys

    09/04/2014 a las 13:34


  • Lo descubrí, estaba usando the_id() en su lugar, que genera la ID de la publicación. Ups.

    – pixelkicks

    11 de abril de 2014 a las 10:10

Aquí está un solución:

  $thumbnail_id    = get_post_thumbnail_id($post->ID);
  $thumbnail_image = get_posts(array('p' => $thumbnail_id, 'post_type' => 'attachment'));

  if ($thumbnail_image && isset($thumbnail_image[0])) {
    echo '<span>'.$thumbnail_image[0]->post_excerpt.'</span>';
  }

O puede usar su código, pero en lugar de hacer eco $alt directamente necesitas hacer eco $alt->post_excerpt.

  • El texto alternativo de la imagen destacada se almacena dentro _wp_attachment_image_alt meta, no en el extracto de la publicación.

    – Pmpr.ir

    15 de julio de 2019 a las 7:24

Si desea obtener el texto alternativo de su imagen destacada, puede obtenerlo con este código…

<?php echo get_post_meta( get_post_thumbnail_id(), '_wp_attachment_image_alt', true); ?>

Entonces, si desea colocarlo en una etiqueta P, esto funcionará …

<p><?php echo get_post_meta( get_post_thumbnail_id(), '_wp_attachment_image_alt', true); ?></p>

Espero que te ayude, o a alguien al menos.

  • siempre debe desinfectar la salida, por lo que es una buena práctica envolverlo todo en esc_html en este caso.

    – Mindaugas Jakubauskas

    7 sep 2020 a las 11:20

¿Ha sido útil esta solución?