J'utilise un fichier attachment.php pour afficher de grandes versions d'images sur lesquelles on a cliqué ailleurs. J'aimerais extraire le texte alt de l'image en tant que légende sous l'image avec javascript, mais le texte alt n'est pas inclus lorsque wp_get_attachment_image_src () est utilisé. Je ne pense pas que WP ait une fonction pour le récupérer, alors j'ai besoin de la mienne. Pour écrire cette fonction, j'ai besoin de savoir ... Où le texte de remplacement d'une image est-il stocké?
Ma page de pièce jointe utilise wp_get_attachment_image_src()
, qui n'inclut pas le texte alternatif.
<div class = "entry">
<?php
if ( wp_attachment_is_image( $post->id ) ) :
$att_image = wp_get_attachment_image_src( $post->id, "large");?>
<a href="<?php echo wp_get_attachment_url($post->id); ?>"
title="<?php the_title(); ?>"
rel="attachment">
<img class="attached_img"
src="<?php echo $att_image[0];?>"
width="<?php echo $att_image[1];?>"
height="<?php echo $att_image[2];?>"
class="attachment-medium"
alt="<?php $post->post_excerpt; ?>" />
</a>
} <?php endif;?>
</div>
Ceci montre:
<div class = "entry">
<a href="http://www.example.com/wp-content/uploads/2010/07/photo_namejpg"
title="My_Photo_Title"
rel="attachment">
<img class="attached_img"
src="http://www.example.com/wp-content/uploads/2010/07/photo_name_and_size.jpg"
width="393"
height="500"
class="attachment-medium"
alt="" />
</a>
</div>
Je suis conscient du fait que le $post->post_excerpt
code est appelé dans le code ci-dessus, mais je ne sais pas quoi remplacer par celui-ci pour obtenir l'attribut alt de l'image.
la source
wp_get_attachment_imgage()
et je l'ai complètement oublié. Vous avez raison sur ce dont je pensais avoir réellement besoin. Merci pour l'info. Vous avez également raison de savoir où est stockée la méta-alt. C'est ce que je reçois pour y entrer à la fin de la journée. Merci encore!wp_get_attachment_image()
retourne un tableau des attributs d’image et de sécurité. Il semble ne renvoyer que du code HTML contenant l'image et ses attributs. Fait toujours le travail, mais je ne savais pas si vous saviez quelque chose qui ne figuraitEnvisagez de regarder
wp_prepare_attachment_for_js( $attachment )
où se$attachment
trouve l'objet WP_Post de la pièce jointe.C'est un peu une fonction "d'évier de cuisine", mais elle fournit un très bon hash avec une tonne de métadonnées, y compris 'alt':
Ceci est particulièrement utile (comme son nom l'indique), pour envoyer la méta de l'image de pièce jointe à un wp.media View via
wp_send_ajax()
, mais cela ne signifie pas que vous ne pouvez pas l'utiliser à d'autres fins.J'aime faire abstraction du
_wp_attachment_image_alt
champ meta post, au cas où la méthode de récupération du texte alternatif changerait (peu probable, mais concevable).J'estime qu'il y a un cas pour une
wp_get_attachment_image_alt()
méthode cependant.la source
La réponse de Mike est correcte, bien sûr, mais
$alt_text = get_post_meta($post->ID, '_wp_attachment_image_alt', true);
peut renvoyer une chaîne vide.wp_get_attachment_image , cependant, obtient toujours un alt_text.
L'équipe Wordpress applique l'astuce suivante en vérifiant d'abord le post_except, puis en obtenant le titre.
la source
J'ai découvert que le texte Alt des pièces jointes était stocké dans une méta personnalisée appelée "_wp_attachment_image_alt".
Donc, ayant l'identifiant de la pièce jointe, j'ai pu obtenir le texte alternatif avec ce code:
la source
Si vous utilisez WP_Customize_Media_Control (), votre get_theme_mod () renverra l'identifiant de publication, mais si vous utilisez le nouveau WP_Customize_Image_Control (), get_theme_mod () retournera l'URL de l'image, ce qui m'a permis d'obtenir le texte alt de WP_Customize_Image ()
Voici comment j'ai pu le faire. J'espère que cela aide quelqu'un là-bas
Balisage
la source
Pour ajouter à la réponse de Mike, cela pourrait être utile. Vous aurez peut-être besoin d'obtenir l'ID spécifique de la pièce jointe. Vous pouvez donc le faire en transmettant l'ID de publication à l'
get_post_thumbnail_id
exemple:la source