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.

media-uploader

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

Autor: Paulo Faustino

Blog do Autor | Artigos do Autor:

Fundador da Escola Dinheiro. É um empreendedor e blogueiro que dedica a sua vida à produção e partilha de conteúdos de grande qualidade, contando já com alguns dos mais reconhecidos blogs de Portugal e do Brasil.

Templates Wordpress que Recomendamos:

  • U-Design WordPress Theme
  • Tersus - Responsive WordPress Theme
  • Modernize - Flexibility of Wordpress
  • Good Space - Responsive Minimal WP Theme
  • Sterling - Responsive Wordpress Theme
  • Karma - Clean and Modern Wordpress Theme
  • Doover Premium WordPress Theme
  • MayaShop - A Flexible Responsive e-Commerce Theme
  • SmartStart WP - Responsive HTML5 Theme
  • Striking Premium Corporate & Portfolio WP Theme
  • Core Minimalist Photography Portfolio
  • King Size - fullscreen background WordPress theme

Gostou deste artigo? Então torne-se fã do Blog no Facebook!


WooThemes - WordPress themes for everyone

Comentários dos Alunos


  1. Jose Correia
    02.03.2012

    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.

    Responder


  2. Vitor Carvalho
    12.03.2012

    Muito bom este artigo Paulo! Obrigado!

    No entanto a minha “luta” hoje em dia é como tirar campos do uploader de mídia :P

    Para o cliente normal, acho um exagero a quantidade de campos que lá estão.

    Um abraço amigo

    Responder


    • Tiago
      13.04.2012

      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;
      }

      Responder


  3. daniel
    13.03.2012

    onde fica o “loop (ciclo)”

    Responder

Comente o Artigo!

RSS
Twitter
Facebook
Comentários
ASSINANTES
SEGUIDORES
FÃS
COMENTÁRIOS
11486

Subscrever Newsletter
Subscreva a Newsletter:


Elegant Themes

Wix

Theme Forest

Mojo Themes



Assine a Escola Wordpress Assine a Newsletter da Escola Wordpress Escola Wordpress no Twitter Escola Wordpress no Facebook Escola Wordpress no Youtube Escola Wordpress no Google Buzz