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á!