Estou usando um arquivo attachment.php para mostrar grandes versões de imagens que foram clicadas em outro lugar. Gostaria de puxar o texto alternativo da imagem como legenda sob a imagem com javascript, mas o texto alternativo não é incluído quando é usado o wp_get_attachment_image_src (). Não acho que o WP tenha uma função para recuperá-lo, então preciso do meu. Para escrever essa função, preciso saber ... Onde está armazenado o texto alternativo de uma imagem?
Minha página de anexo usa wp_get_attachment_image_src()
, o que não inclui o texto alternativo.
<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>
Isso mostra:
<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>
Estou ciente de que o $post->post_excerpt
código está sendo chamado no código acima, mas não sei com o que substituí-lo para obter o atributo alt da imagem.
fonte
wp_get_attachment_imgage()
antes e esqueci completamente. Você está certo sobre o que eu pensei que realmente precisava. Obrigado pela informação. Você também está certo sobre onde o metad alt está armazenado ... Eu olhei naquele mesmo lugar, mas ele me escapou, mesmo que eu devesse estar olhando fixamente para ele. É o que eu ganho por entrar no final do dia. Obrigado novamente!wp_get_attachment_image()
retorna uma matriz da imagem src e atributos. Parece retornar apenas html contendo a imagem e seus atributos. Ainda faz o trabalho, só não sei se você estava ciente de algo não sobre a função ref: codex.wordpress.org/Function_Reference/wp_get_attachment_imageConsidere examinar
wp_prepare_attachment_for_js( $attachment )
onde$attachment
está o objeto WP_Post do próprio anexo.Essa é uma função da "pia da cozinha", mas fornece um hash muito bom com uma tonelada de metadados, incluindo 'alt':
Isso é particularmente útil (como o nome indica), para enviar a meta da imagem do anexo para uma wp.media View via
wp_send_ajax()
, mas isso não significa que você não possa usá-la para outros fins.Gosto de abstrair do
_wp_attachment_image_alt
campo meta post, caso o método para recuperar o texto alternativo mude (improvável, mas concebível).Eu sinto que há um argumento para um
wp_get_attachment_image_alt()
método, no entanto.fonte
A resposta de Mike está correta, é claro, mas
$alt_text = get_post_meta($post->ID, '_wp_attachment_image_alt', true);
pode retornar uma string vazia.wp_get_attachment_image , no entanto, sempre recebe um alt_text.
A equipe do Wordpress aplica o seguinte truque, primeiro, verificando o post_except e obtendo o título.
fonte
Descobri que o texto Alt para anexos era armazenado em uma meta personalizada chamada "_wp_attachment_image_alt"
Portanto, tendo o ID do anexo, consegui obter o texto alternativo com este código:
fonte
Se você estiver usando WP_Customize_Media_Control (), seu get_theme_mod () retornará o ID da postagem, mas se você estiver usando o novo WP_Customize_Image_Control (), o get_theme_mod () retornará a URL da imagem, foi assim que consegui obter o texto alternativo usando o WP_Customize_Image_Control ()
Aqui está como eu fui capaz de fazê-lo. Espero que isto seja útil a alguém
Marcação
fonte
Para adicionar à resposta de Mike, alguém pode achar isso útil. Pode ser necessário obter o ID específico do anexo, para isso, passando o ID da postagem para o
get_post_thumbnail_id
exemplo:fonte