Ich verwende eine attachment.php-Datei, um große Versionen von Bildern anzuzeigen, auf die an anderer Stelle geklickt wurde. Ich möchte den Bildalttext mit Javascript als Beschriftung unter das Bild ziehen, aber der Alttext ist nicht enthalten, wenn wp_get_attachment_image_src () verwendet wird. Ich glaube nicht, dass WP eine Funktion zum Abrufen hat, also brauche ich meine eigene. Um diese Funktion zu schreiben, muss ich wissen ... Wo ist der Alternativtext für ein Bild gespeichert?
Meine Anhangsseite verwendet wp_get_attachment_image_src()
, die den Alternativtext nicht enthält.
<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>
Das zeigt:
<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>
Ich bin mir bewusst, dass das $post->post_excerpt
im obigen Code aufgerufen wird, aber ich bin nicht sicher, durch was es ersetzt werden soll, um das alt-Attribut des Bildes zu erhalten.
quelle
wp_get_attachment_imgage()
und komplett vergessen. Sie haben Recht mit dem, was ich Ihrer Meinung nach wirklich brauche. Danke für die Information. Sie haben auch Recht, wo das Alt-Meta gespeichert ist ... Ich habe genau an diesem Ort gesucht, aber es ist mir ausgewichen, obwohl ich es direkt angestarrt haben muss. Das ist es, was ich bekomme, um mich am Ende des Tages darauf einzulassen. Danke noch einmal!wp_get_attachment_image()
ein Array des Bilds src und der Attribute zurückgegeben wird. Es scheint nur HTML mit dem Bild und seinen Attributen zurückzugeben. ErledigtÜberlegen Sie
wp_prepare_attachment_for_js( $attachment )
, wo$attachment
sich das WP_Post-Objekt des Anhangs befindet.Dies ist eine Art "Küchenspülfunktion", bietet jedoch einen sehr guten Hash mit einer Menge Metadaten, einschließlich "alt":
Dies ist besonders nützlich (wie der Name schon sagt), um das Meta des Anhangsbilds über an eine wp.media-Ansicht zu senden. Dies bedeutet
wp_send_ajax()
jedoch nicht, dass Sie es nicht für andere Zwecke verwenden können.Ich mag es, vom
_wp_attachment_image_alt
Post-Meta-Feld wegzugehen , falls sich die Methode zum Abrufen des Alternativtexts jemals ändert (unwahrscheinlich, aber vorstellbar).Ich glaube jedoch, dass es einen Grund für eine
wp_get_attachment_image_alt()
Methode gibt.quelle
Mikes Antwort ist natürlich richtig,
$alt_text = get_post_meta($post->ID, '_wp_attachment_image_alt', true);
kann aber eine leere Zeichenfolge zurückgeben.wp_get_attachment_image erhält jedoch immer einen Alt_text.
Das Wordpress-Team wendet den folgenden Trick an, indem es zuerst nach post_except sucht und dann den Titel erhält.
quelle
Ich habe herausgefunden, dass der Alt-Text für Anhänge in einem benutzerdefinierten Meta namens "_wp_attachment_image_alt" gespeichert wurde.
Nachdem ich die ID des Anhangs hatte, konnte ich den Alternativtext mit folgendem Code abrufen:
quelle
Wenn Sie WP_Customize_Media_Control () verwenden, gibt Ihr get_theme_mod () die Beitrags-ID zurück. Wenn Sie das neue WP_Customize_Image_Control () verwenden, gibt das get_theme_mod () die Bild-URL zurück ()
Hier ist, wie ich es geschafft habe. Hoffe das hilft jemandem da draußen
Markup
quelle
Um zu Mikes Antwort hinzuzufügen, könnte jemand dies nützlich finden. Möglicherweise müssen Sie die spezifische ID des Anhangs abrufen, indem Sie die Post-ID an
get_post_thumbnail_id
Beispiel übergeben:quelle