Comment obtenir l'attribut titre / alt de l'image?
-
-
Vousessayez d'obtenir laméta depublication de `$ attachment-> ID`maisje ne vois aucuneinformation sur l'objet` $ attachment` dans votre code.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
-
@cybmetaj'ai cetextrait de code d'ici 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
-
Vouspouvez également utiliser despluginstels que 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/J'espère que cela aide!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 réponses
- votes
-
- 2019-03-04
Je suis venuici car cet articlefaitpartie desmeilleurs résultats sur lemoteur de recherche lors de la recherche de l'altet dutitre d'image WordPress.Étantplutôt surpris qu'aucune des réponsesne semblefournir une solution simple correspondant autitre de la question,je laissetomber ce quej'aiproposé à lafin enespérant que cela aidera lesfuturs lecteurs.
// 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);
Enbonus,voici comment récupérer uneimage src.Avec les attributs ci-dessus,c'esttout ce dontnous avonsbesoinpour créer lebalisage d'uneimage statique.
$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];
-
Jene comprendspas la différenceentre votre réponseet les autres.Leproblème dans la question était que l'ID depiècejointen'étaitpas correct,et c'est la réponse.Deplus,dans votre réponse,vous obtenez l'ID de la vignette de l'article actuel,maispas de lapiècejointe souhaitée.doncilne répondpas/ne résoutpas la question du PO.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
-
L'endroit où vous obtenez votreidentifiant d'image dépend de vous.Maismercipour le votenégatif detoutefaçon.Particulièrementgentil à vous de collerma réponse dans la vôtre.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
-
Vous avezmon votepour cela,c'estexactement comme vous l'avez décrit.Top hit surgoogle,bonne réponse.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
Votreproblèmeest que vousne fournissezpas l'ID correct de lapiècejointe auxfonctions
get_post_meta()
etget_the_title()
.Voici votre codepour obtenir le
alt
de l'image:$image_alt = get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true);
Et c'est correct,mais
$attachment->ID
n'estpas défini dans votre code,donc,lafonctionne renvoie rien.En lisant votre code,il semble que vous stockiez l'ID de l'image sousforme de champmétaet que vous l'obteniez avec ce code:
$image = get_post_meta(get_the_ID(), WPGRADE_PREFIX.'homepage_slide_image', true);
Donc,en supposant que
$image->id
est correct dans votre code,vous devriez remplacer ceci:$image_alt = get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true);
Avec:
$image_alt = get_post_meta( $image->id, '_wp_attachment_image_alt', true);
C'estpour obtenir le
alt
,pour obtenir letitre:$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
J'utilise unefonction rapide danstousmesthèmespour obtenir des données depiècejointe d'image:
//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 ); } }
J'espère que cela vous aidera!
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 . '" />'; }
Veuilleznoter queje n'aipastesté votre
$image->id
,je suppose simplement que vous avez lebon ID depiècejointe.Le reste vient de$img_meta
.Si altestmanquant,nous utilisons letitre de l'image,si letitreestmanquant,vous verrez letexte "Titremanquant"pour vouspousser à le remplir.$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
Okj'aitrouvé la réponse quepersonnen'a sur lenet queje cherchais depuis desjoursmaintenant. Gardez dans lemien celane fonctionne que si votrethème ouplugin utilise WP_Customize_Image_Control () si vous utilisez WP_Customize_Media_Control () leget_theme_mod () renverra l'IDet non l'URL.
Pourma solution,j'utilisais lanouvelle version WP_Customize_Image_Control ()
Beaucoup demessages sur lesforums ont leget_attachment_id () quine fonctionneplus. J'ai utilisé attachment_url_to_postid ()
Voici commentj'aipu lefaire. J'espère que cela aide quelqu'un là-bas
// 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 );
Balisage
<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>
Dansmonthèmeblanc,iln'y apas d'attribut alt configurépour lemessage du curseur d'accueil. J'ai ajouté letexte alternatif de l'image via l'interface de labibliothèquemultimédia. J'ai ajouté le code suivantpour afficher letexte/attribut alt. Maisiln'affichepas:
Voici le code: