¿Cómo obtener el título de la imagen / atributo alt?
-
-
Estáintentando obtenerelmeta de lapublicación de `$ adjunto-> ID`peronopuedo verningunainformación sobreel objeto` $ adjunto`en su código.You are trying to get the post meta of `$attachment->ID` but I can not see any info about `$attachment` object in your code.
- 1
- 2015-07-01
- cybmeta
-
@cybmetatengoestefragmento de código de aquí http://wordpress.stackexchange.com/questions/185396/getting-the-image-title-alt-attribute-from-the-gallery-shortcode@cybmeta i have got this code snippet from here http://wordpress.stackexchange.com/questions/185396/getting-the-image-title-alt-attribute-from-the-gallery-shortcode
- 0
- 2015-07-01
- Nisha_at_Behance
-
Tambiénpuede utilizar complementos como 1) https://wordpress.org/plugins/imageseo/ 2) https://wordpress.org/plugins/auto-image-attributes-from-filename-with-bulk-updater/ 3) https://wordpress.org/plugins/auto-image-alt/¡Espero quete ayude!You can also use plugins such as 1) https://wordpress.org/plugins/imageseo/ 2) https://wordpress.org/plugins/auto-image-attributes-from-filename-with-bulk-updater/ 3) https://wordpress.org/plugins/auto-image-alt/ I hope it helps!
- 0
- 2020-02-24
- James
-
5 respuestas
- votos
-
- 2019-03-04
Vine aquíporqueestapublicación seencuentraentre losmejores resultadosen elmotor debúsqueda cuando sebuscaeltítulo y laimagen alternativa de WordPress.Alestarbastante sorprendido de queninguna de las respuestasparezcaproporcionar una solución simple que coincida coneltítulo de lapregunta,dejaré caer lo que seme ocurrió alfinal con laesperanza de que ayude a losfuturos lectores.
// An attachment/image ID is all that's needed to retrieve its alt and title attributes. $image_id = get_post_thumbnail_id(); $image_alt = get_post_meta($image_id, '_wp_attachment_image_alt', TRUE); $image_title = get_the_title($image_id);
Comobeneficio adicional,aquí seexplica cómo recuperar unaimagen src.Con los atributos anteriores,esoestodo lo quenecesitamospara crearelmarcado de unaimagenestática.
$size = 'my-size' // Defaults to 'thumbnail' if omitted. $image_src = wp_get_attachment_image_src($image_id, $size)[0];
Came here as this post is among the top hits on the search engine when looking for WordPress image alt and title. Being rather surprised that none of the answers seem to provide a simple solution matching the question's title I'll drop what I came up with in the end hoping it helps future readers.
// An attachment/image ID is all that's needed to retrieve its alt and title attributes. $image_id = get_post_thumbnail_id(); $image_alt = get_post_meta($image_id, '_wp_attachment_image_alt', TRUE); $image_title = get_the_title($image_id);
As a bonus here's how to retrieve an image src. With the above attributes that's all we need to build a static image's markup.
$size = 'my-size' // Defaults to 'thumbnail' if omitted. $image_src = wp_get_attachment_image_src($image_id, $size)[0];
-
Noentiendo la diferenciaentretu respuesta y las demás.Elproblema de lapreguntaera queel ID del archivo adjuntonoera correcto yesaes la respuesta.Además,en su respuesta,obtieneel ID de laminiatura de lapublicación actual,perono del archivo adjunto deseado.por lo queno responde/resuelve lapregunta del OP.I don't get the difference in your answer and the others. The problem in the question was that the attachment ID was not correct, and that is the answer. Additionally, in your answer, you get the ID for the thumbnail of the current post, but not for the desired attachment. so it doesn't answer/solve the question of the OP.
- 0
- 2019-03-20
- cybmeta
-
De dónde obtiene su ID deimagen depende de usted.Perograciasporel votonegativo detodosmodos.Especialmente amable detuparte alpegarmi respuestaen latuya.Where you get your image ID from is up to you. But thanks for the downvote anyways. Especially nice of you to paste my answer into yours.
- 0
- 2019-03-26
- leymannx
-
Tienesmi voto afavorparaesto,esexactamente como lo has descrito.Top hiten google,buena respuesta.You have my upvote for this, It's exactly like you've described. Top hit on google, good answer.
- 1
- 2020-05-08
- user3135691
-
- 2015-07-01
Suproblemaes quenoestáproporcionandoel ID de archivo adjunto correctopara lasfunciones
get_post_meta()
yget_the_title()
.Estees su códigopara obtenerel
alt
de laimagen:$image_alt = get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true);
Yes correcto,pero
$attachment->ID
noestá definidoen su código,por lo que lafunciónno devuelvenada.Al leer su código,parece que almacenael ID de laimagen como unmetacampo y luego lo obtiene coneste código:
$image = get_post_meta(get_the_ID(), WPGRADE_PREFIX.'homepage_slide_image', true);
Por lotanto,asumiendo que
$image->id
es correctoen su código,debe reemplazaresto:$image_alt = get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true);
Con:
$image_alt = get_post_meta( $image->id, '_wp_attachment_image_alt', true);
Esoespara obtenerel
alt
,para obtenereltítulo:$image_title = get_the_title( $image->id );
Your problem is that you are not providing the correct attachment's ID to
get_post_meta()
andget_the_title()
functions.This is your code to get the
alt
of the image:$image_alt = get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true);
And it is correct, but
$attachment->ID
is not defined in your code, so, the function does not return anything.Reading your code, it seems that you store the ID of the image as a meta field and then you get it with this code:
$image = get_post_meta(get_the_ID(), WPGRADE_PREFIX.'homepage_slide_image', true);
So, assuming that
$image->id
is correct in your code, you should replace this:$image_alt = get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true);
With:
$image_alt = get_post_meta( $image->id, '_wp_attachment_image_alt', true);
That is for getting the
alt
, to get the title:$image_title = get_the_title( $image->id );
-
- 2019-01-29
Utilizo unafunción rápidaen todosmistemaspara obtener datos de archivos adjuntos deimágenes:
//get attachment meta if ( !function_exists('wp_get_attachment') ) { function wp_get_attachment( $attachment_id ) { $attachment = get_post( $attachment_id ); return array( 'alt' => get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true ), 'caption' => $attachment->post_excerpt, 'description' => $attachment->post_content, 'href' => get_permalink( $attachment->ID ), 'src' => $attachment->guid, 'title' => $attachment->post_title ); } }
¡Espero queestote ayude!
I use a quick function in all my themes to get image attachment data:
//get attachment meta if ( !function_exists('wp_get_attachment') ) { function wp_get_attachment( $attachment_id ) { $attachment = get_post( $attachment_id ); return array( 'alt' => get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true ), 'caption' => $attachment->post_excerpt, 'description' => $attachment->post_content, 'href' => get_permalink( $attachment->ID ), 'src' => $attachment->guid, 'title' => $attachment->post_title ); } }
Hope this helps!
-
- 2017-01-02
$image = get_post_meta(get_the_ID(), WPGRADE_PREFIX . 'homepage_slide_image', true); if (!empty($image)) { $image = json_decode($image); $image_id = $image->id; $img_meta = wp_prepare_attachment_for_js($image_id); $image_title = $img_meta['title'] == '' ? esc_html_e('Missing title','{domain}') : $img_meta['title']; $image_alt = $img_meta['alt'] == '' ? $image_title : $img_meta['alt']; $image_src = wp_get_attachment_image_src($image_id, 'blog-huge', false); echo '<img class="homepage-slider_image" src="' . $image_src[0] . '" alt="' . $image_alt . '" />'; }
tengaen cuenta quenoprobé su
$image->id
,solo asumí quetiene el ID de archivo adjunto correcto.El restoproviene de$img_meta
.Sifalta alt,estamos usandoeltítulo de laimagen,sifaltaeltítulo,veráeltexto "Faltaeltítulo"paraindicarle que lo complete.$image = get_post_meta(get_the_ID(), WPGRADE_PREFIX . 'homepage_slide_image', true); if (!empty($image)) { $image = json_decode($image); $image_id = $image->id; $img_meta = wp_prepare_attachment_for_js($image_id); $image_title = $img_meta['title'] == '' ? esc_html_e('Missing title','{domain}') : $img_meta['title']; $image_alt = $img_meta['alt'] == '' ? $image_title : $img_meta['alt']; $image_src = wp_get_attachment_image_src($image_id, 'blog-huge', false); echo '<img class="homepage-slider_image" src="' . $image_src[0] . '" alt="' . $image_alt . '" />'; }
please note that I did not test your
$image->id
, just assumed that you have the right attachment ID. The rest comes from$img_meta
. If alt is missing we are using image title, if title is missing you will see "Missing title" text to nudge you to fill it in. -
- 2017-04-29
Ok,encontré la respuesta quenadietiene en la red que heestadobuscando durante días. Manteneren elmío,esto solofunciona si sutema o complementoestá usando WP_Customize_Image_Control () siestá usando WP_Customize_Media_Control (),get_theme_mod () devolveráel ID yno la url.
Parami solución,estaba usando la versiónmás reciente WP_Customize_Image_Control ()
Muchaspublicacionesen losforostienen get_attachment_id () que yanofunciona. Usé attach_url_to_postid ()
Asíes comopude hacerlo. Espero queesto ayude a alguien
// This is getting the image / url $feature1 = get_theme_mod('feature_image_1'); // This is getting the post id $feature1_id = attachment_url_to_postid($feature1); // This is getting the alt text from the image that is set in the media area $image1_alt = get_post_meta( $feature1_id, '_wp_attachment_image_alt', true );
Marcado
<a href="<?php echo $feature1_url; ?>"><img class="img-responsive center-block" src="<?php echo $feature1; ?>" alt="<?php echo $image1_alt; ?>"></a>
Ok I found the answer that no one has on the net I been looking for days now. Keep in mine this only works if your theme or plugin is using the WP_Customize_Image_Control() if you are using WP_Customize_Media_Control() the get_theme_mod() will return the ID and not the url.
For my solution I was using the newer version WP_Customize_Image_Control()
A lot of posts on the forums have the get_attachment_id() which does not work anymore. I used attachment_url_to_postid()
Here is how I was able to do it. Hope this helps someone out there
// This is getting the image / url $feature1 = get_theme_mod('feature_image_1'); // This is getting the post id $feature1_id = attachment_url_to_postid($feature1); // This is getting the alt text from the image that is set in the media area $image1_alt = get_post_meta( $feature1_id, '_wp_attachment_image_alt', true );
Markup
<a href="<?php echo $feature1_url; ?>"><img class="img-responsive center-block" src="<?php echo $feature1; ?>" alt="<?php echo $image1_alt; ?>"></a>
Enmi temablanco,no hayningún atributo alt configuradopara lapublicación del control deslizante deinicio. Agreguéeltexto alternativopara laimagen através de lainterfaz de labiblioteca demedios. Agreguéel siguiente códigoparamostrareltexto/atributo alternativo. Peronomuestra:
Aquíestáel código: