Adicionando legendas dinamicamente a imagens

Eu tenho um site onde o autor incluiu links da Amazon Affiliate. Eles fizeram isso adicionando o URL às imagens do produto.

Eu estou pensando se há uma maneira de adicionar uma function que irá adicionar automaticamente uma legenda wp abaixo dessas imagens se elas estiverem ligadas à Amazon.

Basicamente, a condição deveria ser: se um href contendo uma imagem estiver vinculado a um domínio que inclua “amazon”, adicione uma legenda abaixo da imagem que diz “Comprar agora”. A legenda também teria o mesmo link que essa imagem.

Eu consegui fazer isso com algum jQuery hacky, mas nem sempre triggers corretamente. Eu acho que pode haver uma maneira melhor …

obrigado

Solutions Collecting From Web of "Adicionando legendas dinamicamente a imagens"

O carregador de mídia envolve a imagem e a legenda no shortcode [caption] . Existe um filtro chamado img_caption_shortcode que pode fazer o que você deseja. A legenda propriamente dita é passada como parte de uma matriz para o manipulador de código curto, como é o ID da imagem.

 add_filter( 'img_caption_shortcode', 'wwm_img_caption_filter', 10, 3 ); function wwm_img_caption_filter( $empty, $attr, $content ) { $image_id = $attr['id']; //do some checking of the $image_id (attachment id) to see what it links to //if it links to amazon, include the link in the caption: if ( /*my condition is met*/ ) { $attr['caption'] = ;//modify the string appropriately } return ;//some string - see documentation } 

Aqui está alguma documentação sobre o filtro: http://codex.wordpress.org/Plugin_API/Filter_Reference/img_caption_shortcode

UPDATE **

se a imagem em questão não tiver uma legenda já usa o filtro de conteúdo

 add_filter( 'the_content', 'add_affiliate_link_caption' ); function add_affiliate_link_caption( $content ) { //I'm not even going to try a regex... //but some sort of regex find/replace stuff on $content return $content; }