Como obter detalhes da imagem carregada

Estou usando o sistema de upload do WordPress ( conforme explicado aqui ) na página de administração do meu plugin.

Posso enviar uma imagem e pegar o URL desta imagem. Mas eu preciso de ID de anexo, legenda de imagem, etc. Como posso alcançá-los?

Eu tenho um

. Tem 3 s.

  //This input will be filled, after user upload an image and click to `Insert to post` button. I can do it.   //Attachment ID will come here automagically (with JavaScript, maybe?). I don't know how can i get it. 

Solutions Collecting From Web of "Como obter detalhes da imagem carregada"

Os metadados de anexo armazenados para a imagem são:

 Array ( [width] => 558 [height] => 771 [hwstring_small] => height='62' width='128' [file] => 2012/02/logo2.png [sizes] => Array ( [thumbnail] => Array ( [file] => file_name.png [width] => 150 [height] => 150 ) [medium] => Array ( [file] => logo2-300x145.png [width] => 300 [height] => 145 ) ) [image_meta] => Array ( [aperture] => 0 [credit] => [camera] => [caption] => [created_timestamp] => 0 [copyright] => [focal_length] => 0 [iso] => 0 [shutter_speed] => 0 [title] => ) ) 

Se a imagem estiver anexada à publicação, você pode usar get_children ():

 $id = intval( $post->ID ); //The ID of the post attached to. $attachments = get_children( array( 'post_parent' => $id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'orderby' => 'menu_order' ) ); foreach ( $attachment as $id => $attachment ) { $caption = $attachment['image_meta']->caption; } 

Se você estiver copiando o artigo, esses campos não existem. Provavelmente seria mais fácil adicionar alguns campos de formulário e obter esses valores.

Se você está assumindo que essas imagens já são carregadas para o WordPress e armazenadas em wp-content, você pode encontrar as imagens no database wp em wp-posts abaixo do tipo attatchment ( fonte ).

Mas, novamente, a maneira como o artigo tem as coisas configuradas, parece que as imagens podem ser carregadas a partir do computador de um usuário ou de outro site, então provavelmente seria melhor pedir que preenchessem os campos.

AQUI ESTÁ. Se entendi corretamente, você deseja obter informações depois que o upload foi carregado.

Então coloque este código no arquivo functions.php . E aqui você tem 2 funções – uma é triggersda depois que a imagem é carregada e exibida para editar informações (ou sempre sempre que você edita o anexo) e o segundo é triggersdo quando o usuário clicar em salvar o anexo.

Com essas 2 funções, você pode fazer qualquer coisa que quiser.

 add_filter("attachment_fields_to_edit", "wpse_54409_image_details_on_edit", null, 2); add_filter("attachment_fields_to_save", "wpse_54409_image_details_on_save", null , 2); function wpse_54409_image_details_on_edit($form_fields, $post) { //we interested only in images so -> if( substr($post->post_mime_type, 0, 5) == 'image' ){ $meta = get_post_custom($post->ID); echo 'This attachment ID: '.$post->ID; echo '
'; echo 'This attachment title: '.$post->post_title; echo '
'; echo 'This attachment post name: '.$post->post_name; echo '
'; echo 'Alt. text: '.$meta['_wp_attachment_image_alt'][0]; echo '
'; echo 'File name: '.$meta['_wp_attached_file'][0]; } return $form_fields; } function wpse_54409_image_details_on_save($post, $attachment) { //we interested only in images so -> if( substr($post->post_mime_type, 0, 5) == 'image' ){ /* HERE YOU CAN GET ALL INFO UPPON ATTACHMENT IS SAVED AND DO WITH THAT INFO WHATEVER YOU WANT EVEN ALTER IT TO MAKE CHANGES TO IT */ } return $post; }