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>
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
yget_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
¿Tiene un campo personalizado llamado
_wp_attachment_image_alt
asociado con la publicación? Además, te sugiero que hagasvar_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