Saya menggunakan file attachment.php untuk menampilkan versi besar dari gambar yang telah diklik di tempat lain. Saya ingin menarik teks alt gambar sebagai teks di bawah gambar dengan javascript, tetapi teks alt tidak disertakan ketika ketika wp_get_attachment_image_src () digunakan. Saya tidak berpikir WP memiliki fungsi untuk mengambilnya, jadi saya perlu sendiri. Untuk menulis fungsi itu, saya perlu tahu ... Di mana teks alt untuk gambar disimpan?
Halaman lampiran saya menggunakan wp_get_attachment_image_src()
, yang tidak termasuk teks alt.
<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>
Pertunjukan ini:
<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>
Saya sadar bahwa $post->post_excerpt
sedang dipanggil dalam kode di atas, tetapi saya tidak yakin harus menggantinya dengan apa untuk mendapatkan atribut alt gambar.
sumber
wp_get_attachment_imgage()
sebelumnya dan benar-benar lupa. Anda benar tentang apa yang saya pikir Anda butuhkan. Terimakasih atas infonya. Anda juga benar tentang di mana alt meta disimpan ... Saya melihat di tempat itu, tetapi itu menghindarkan saya meskipun saya pasti telah menatapnya. Itulah yang saya dapatkan pada akhir hari. Terima kasih lagi!wp_get_attachment_image()
mengembalikan array dari src gambar dan atribut. Tampaknya hanya mengembalikan html yang berisi gambar dan atributnya. Masih melakukan pekerjaan, hanya tidak tahu apakah Anda mengetahui sesuatu yang tidak ada di fungsi ref: codex.wordpress.org/Function_Reference/wp_get_attachment_imagePertimbangkan melihat
wp_prepare_attachment_for_js( $attachment )
, di mana$attachment
objek WP_Post dari lampiran itu sendiri.Ini sedikit fungsi "kitchen sink", tetapi memang memberikan hash yang sangat bagus dengan satu ton metadata, termasuk 'alt':
Ini sangat berguna (seperti namanya), untuk mengirim meta gambar lampiran ke wp.media View via
wp_send_ajax()
, tetapi itu tidak berarti Anda tidak dapat menggunakannya untuk tujuan lain.Saya suka abstrak jauh dari
_wp_attachment_image_alt
bidang meta pos, kalau-kalau metode untuk mengambil teks alt pernah berubah (tidak mungkin, tetapi bisa dibayangkan).Saya merasa bahwa ada kasus untuk suatu
wp_get_attachment_image_alt()
metode.sumber
Jawaban Mike benar, tentu saja, tetapi
$alt_text = get_post_meta($post->ID, '_wp_attachment_image_alt', true);
dapat mengembalikan string kosong.wp_get_attachment_image , bagaimanapun, selalu mendapatkan alt_text.
Tim Wordpress menerapkan trik berikut, pertama, memeriksa post_except, lalu mendapatkan judul.
sumber
Saya menemukan bahwa teks Alt untuk lampiran disimpan pada meta khusus yang disebut "_wp_attachment_image_alt"
Jadi memiliki ID lampiran, saya bisa mendapatkan teks alt dengan kode ini:
sumber
Jika Anda menggunakan WP_Customize_Media_Control () get_theme_mod () Anda akan mengembalikan id posting tetapi jika Anda menggunakan WP_Customize_Image_Control () get_theme_mod () akan mengembalikan url gambar ini adalah bagaimana saya bisa mendapatkan alt teks dari menggunakan WP_Customize_mage_mage_mage_mage_mage_mod_mage ()
Inilah cara saya bisa melakukannya. Semoga ini bisa membantu seseorang di luar sana
Markup
sumber
Untuk menambah jawaban Mike, seseorang mungkin menganggap ini berguna. Anda mungkin perlu mendapatkan ID spesifik dari lampiran, sehingga Anda dapat melakukannya dengan mengirimkan ID Posting sebagai
get_post_thumbnail_id
contoh:sumber