Campo personalizado como legenda de imagem destacada

O problema é: Minha legenda de imagem destacada não está sendo mostrada porque está (ainda) armazenada em um campo personalizado (chamado (wpcf-bildunterschrift). Posso acessar facilmente o campo personalizado, mas não o campo que o WordPress armazena seus meta-dados para imagens dentro e desde que os meta dados para a imagem não são armazenados com a imagem, tenho que depender da mesma publicação que usa a imagem para ter uma conexão entre eles, a imagem e os dados.

Como posso copiar o valor do campo personalizado da minha postagem para o campo de legenda da imagem em destaque?

Solutions Collecting From Web of "Campo personalizado como legenda de imagem destacada"

Aqui está uma maneira de injetar o campo personalizado como a legenda da imagem destacada com a ajuda do filtro post_thumbnail_html :

 add_filter( 'post_thumbnail_html', function( $html, $post_id ) { if( $html && $caption = get_post_meta( $post_id, 'wpcf-bildunterschrift', true ) ) $html .= sprintf( '

%s

', sanitize_text_field( $caption ) ); return $html; }, 10, 2 );

Espero que você possa ajustar isso às suas necessidades.

Atualizar

De acordo com o boleto nº 12235 , teremos uma nova tag de modelo, no WP 4.6+, para exibir a legenda da imagem destacada, a saber:

 the_post_thumbnail_caption() 

onde a saída é filtrável através do the_post_thumbnail_caption .

É um invólucro para a function:

 get_the_post_thumbnail_caption() 

Isso é novamente o invólucro para a function:

 wp_get_attachment_caption() 

Esta function obtém a legenda do campo post_excerpt do anexo e a saída é filtrável através do filtro wp_get_attachment_caption .

Exemplo

Se o nosso tema usasse esta nova tag de modelo, poderíamos filtrar isso com:

 add_filter( 'the_post_thumbnail_caption', function( $caption ) { if( $custom = get_post_meta( get_the_ID(), 'wpcf-bildunterschrift', true ) ) $caption = sanitize_text_field( $custom ); return $caption; }, 10, 2 ); 

Tenha em atenção que, por exemplo, retire as possíveis etiquetas HTML do campo personalizado. Se você quiser apoiar o HTML, então você pode verificar a discussão no ticket.