Come ottenere l'attributo titolo / alt dell'immagine?
-
-
Staitentando di ottenereilmeta delpost di `$ attachment-> ID`manon riesco a vedere alcunainformazione sull'oggetto` $ attachment`neltuo codice.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
-
@cybmeta ho questoframmento di codice da qui 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
-
Puoi anche utilizzareplugin come 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/Spero che aiuti!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 risposta
- voti
-
- 2019-03-04
È venuto quiperché questopost ètrai migliori risultati sulmotore di ricerca quando si cercano alte titolo diimmagini WordPress.Rimanendopiuttosto sorpreso dalfatto chenessuna delle risposte sembrafornire una soluzione semplice che corrisponda altitolo della domanda,lasceròperdere quello che hotrovato allafine sperando che aiutii futuri lettori.
// 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);
Comebonus,ecco come recuperare un'immagine src.Congli attributi di cui sopra ètutto ciò di cui abbiamobisognoper costruireilmarkup di un'immagine statica.
$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];
-
Non capisco la differenzanellatua rispostae negli altri.Ilproblemanella domandaera che l'ID dell'allegatononera correttoe questa è la risposta.Inoltre,nellatua risposta,ottieni l'IDper l'anteprima delpost corrente,manonper l'allegato desiderato.quindinon risponde/risolve la domanda dell'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
-
Da doveprendi l'IDimmagine dipende date.Magrazie comunqueperil votonegativo.Particolarmentegentile dapartetuaincollare lamia rispostanellatua.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
-
Haiilmio votopositivoper questo,èesattamente come l'hai descritto.Top hit su Google,buona risposta.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
Iltuoproblema è chenon staifornendo l'ID dell'allegato corretto allefunzioni
get_post_meta()
eget_the_title()
.Questo èiltuo codiceper ottenere l '
alt
dell'immagine:$image_alt = get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true);
Ed è corretto,ma
$attachment->ID
non è definitonel codice,quindi lafunzionenon restituiscenulla.Leggendoiltuo codice,sembra chememorizzi l'ID dell'immagine comemetafielde poi lo ottieni con questo codice:
$image = get_post_meta(get_the_ID(), WPGRADE_PREFIX.'homepage_slide_image', true);
Quindi,supponendo che
$image->id
sia correttonel codice,dovresti sostituire questo:$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);
Questo serveper ottenere
alt
,per ottenereiltitolo:$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
Uso unafunzione rapidain tuttii mieitemi per ottenerei dati degli allegati alleimmagini:
//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 ); } }
Spero che questo aiuti!
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 . '" />'; }
tieni presente chenon hotestatoiltuo
$image->id
,supponevo solo che avessi l'ID dell'allegato corretto.Il restoproviene da$img_meta
.Semanca alt,stiamo usandoiltitolo dell'immagine,semancailtitolo vedraiiltesto "Titolomancante"per spingerti a riempirlo.$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 hotrovato la risposta chenessuno hain rete che cercavo dagiorni ormai. Tieninellamia questofunziona solo seiltuotema oplugin utilizza WP_Customize_Image_Control () se stai usando WP_Customize_Media_Control ()get_theme_mod () restituirà l'IDe non l'URL.
Per lamia soluzione stavo usando la versionepiù recente WP_Customize_Image_Control ()
Moltipost suiforum hannoget_attachment_id () chenonfunzionapiù. Ho usato attachment_url_to_postid ()
Ecco come sono riuscito afarlo. Spero che questo aiuti qualcuno làfuori
// 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>
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>
Nelmiotemabianco,non c'è alcun attributo alt configuratoperilpost dello slider home. Ho aggiuntoiltesto alternativo all'immaginetramite l'interfaccia della libreriamultimediale. Ho aggiuntoil seguente codiceper visualizzareiltesto/attributo alt. Manonmostra:
Eccoil codice: