Se você tem um site ou blog no WordPress e utiliza com muita frequência o Uploader de Mídia do WordPress para carregar fotos e ficheiros, provavelmente já sentiu necessidade de ter mais campos disponíveis no seu Uploader de Mídia para colocar por exemplos créditos para a fotografia, nome do autor, etc. O mesmo se aplica a vídeos e outros formatos de mídia que você carregue com frequência para o seu WordPress. Todavia o uploader de mídia está limitado aos campos tradicionais de título, texto e descrição, não oferecendo mais possibilidades aos autores que desejam explorar ou maximizar o potencial desta excelente ferramenta do WordPress. Para o fazer, o consultor Bill Erickson compartilhoy recentemente um código/função que permite adicionar facilmente mais campos a esse uploader de uma forma bem fácil e intuitiva.
O WordPress guarda das imagens, vídeos, etc como anexos de um tipo de artigo, pelo que adicionar meta informação é o mesmo que adicionar custom fields (campos personalizados). Como os anexos do WordPress não oferecem um interface para custom fields, teremos de adicionar custom fields ao uploader de mídia por forma a conseguirmos carregar e ler essa meta informação. Juntamente com este truque, poderá implementar também este: Como aumentar o limite de upload de mídia no WordPress para não ficar limitado ao carregamento de ficheiros com apenas 2MB.

Iremos usar os seguintes filtros para fazer as alterações: attachment_fields_to_edit e attachment_fields_to_save
Copie e cole o seguinte código para dentro do ficheiro functions.php dos seus Temas WordPress. Caso o seu tema não tenha um ficheiro deste tipo, considere criar um com esse nome e formato.
/**
* Adicionar nome e URL ao uploader de midia
*
* @param $form_fields array, fields to include in attachment form
* @param $post object, attachment record in database
* @return $form_fields, modified form fields
*/
function be_attachment_field_credit( $form_fields, $post ) {
$form_fields['be-photographer-name'] = array(
'label' => 'Nome do Fotógrafo',
'input' => 'text',
'value' => get_post_meta( $post->ID, 'be_photographer_name', true ),
'helps' => 'Mostrar crédito para o autor',
);
$form_fields['be-photographer-url'] = array(
'label' => 'URL do Fotógrafo',
'input' => 'text',
'value' => get_post_meta( $post->ID, 'be_photographer_url', true ),
'helps' => 'URL da página do autor',
);
return $form_fields;
}
add_filter( 'attachment_fields_to_edit', 'be_attachment_field_credit', 10, 2 );
/**
* Save values of Photographer Name and URL in media uploader
*
* @param $post array, the post data for database
* @param $attachment array, attachment fields from $_POST form
* @return $post array, modified post data
*/
function be_attachment_field_credit_save( $post, $attachment ) {
if( isset( $attachment['be-photographer-name'] ) )
update_post_meta( $post['ID'], 'be_photographer_name', $attachment['be-photographer-name'] );
if( isset( $attachment['be-photographer-url'] ) )
update_post_meta( $post['ID'], 'be_photographer_url', esc_url( $attachment['be-photographer-url'] ) );
return $post;
}
add_filter( 'attachment_fields_to_save', 'be_attachment_field_credit_save', 10, 2 );
?>
Neste exemplo criado com o intuito de colocar um Nome de Fotografo e URL da página do Fotógrafo, o Bill Erickson criou um conceito interessante que pode ser facilmente re-adaptado a outras necessidades como créditos para autores de vídeos, ou outros tipos de ficheiros que você venha a utilizar no seu blog WordPress.
Se você pretende mostrar os campos no seu template de anexos, copie e cole este código para dentro do loop (ciclo):
echo get_post_meta($post->ID, 'be_photographer_url', true);
Se você pretende mostrar os campos em outras seções do seu blog como as páginas de arquivos ou outras, use o seguinte código:
echo get_post_meta(get_post_thumbnail_id(), 'be_photographer_url', true);
Agora poderá não só adicionar mais campos ao uploader de mídia do seu WordPress, como também modificar o código para incluir novos e diversificados campos, de acordo com as suas necessidades.
Até Já!
























































Jose Correia
Olá Paulo. Excelente artigo.
Que venham mais como este.
Realmente ás vezes sinto necessidade de ter mais campos no upload e assim torna-se muito mais facil. Poderia fazer um artigo falando sobre a publicidade do google, o adwords. Cumprimentos e parabens pelo artigo.
Vitor Carvalho
Muito bom este artigo Paulo! Obrigado!
No entanto a minha “luta” hoje em dia é como tirar campos do uploader de mídia
Para o cliente normal, acho um exagero a quantidade de campos que lá estão.
Um abraço amigo
Tiago
Excelênte artigo, Vitor se pretenderes remover alguns fields do media:
// edição de filtros na área “media” upload
add_filter(‘attachment_fields_to_edit’, ‘remover_campos_a_mais’, 10000, 2);
function remover_campos_a_mais( $form_fields, $post ) {
// remover os campos desnecessários
unset( $form_fields['image-size'] );
unset( $form_fields['post_excerpt'] );
unset( $form_fields['post_content'] );
unset( $form_fields['url'] );
unset( $form_fields['image_url'] );
unset( $form_fields['align'] );
return $form_fields;
}
daniel
onde fica o “loop (ciclo)”