Adicionando categorias, tags e taxonomias customizadas nas Mídias do WordPress

Você já se sentiu frustrado pelo fato do WordPress não permitir que você especifique uma categoria ou uma tag nas imagens ou arquivos de mídia? Pois é, eu já, pois tive tal necessidade em um projeto, e me coloquei a pesquisas como resolver isso.

Imagine como isso poder ser útil: criar uma galeria dinâmica de imagens de um local específico, ou típo específico (paisagens, abstratas, etc), ou cria uma página listando todos os documentos do tipo X.

Na verdade, dé algo bem simples de se fazer, pois você pode adicionar algumas funções no seu tema (no arquivo functions.php, é claro), e criar uma taxonomia personalizada para aplicar nos arquivos de midia

Neste tutorial, iremos ver como fazer isso em 10 minutos ou menos!

Antes de começar: Tela de edição de Mídia

Em seu modo padrão, a tela de edição de mídia não contem nenhuma categoria, tag, ou taxonomia habilitada:

midia

Adicionando categorias para as mídias

O primeiro passo é habilitar categorias para as mídias. Você faz isso utilizando a função register_taxonomy_for_object_type, com o trecho de código abaixo:

function wptp_add_categories_to_attachments() {
    register_taxonomy_for_object_type( 'category', 'attachment' );
}
add_action( 'init' , 'wptp_add_categories_to_attachments' );

Salve seu arquivo, atualize a tela de mídia e note que ela ficará assim:

midia categoria

Note também que uma coluna Categorias irá aparecer na Biblioteca de Mídias:

biblioteca midias

Adicionando tags para as mídias

Se você preferir trabalhar com tags ao invés de categorias (ou até mesmo com os dois), você pode as adicionar utilizando a mesma função register_taxonomy_for_object_type, mas com o trecho de código abaixo:

function wptp_add_tags_to_attachments() {
    register_taxonomy_for_object_type( 'post_tag', 'attachment' );
}

add_action( 'init' , 'wptp_add_tags_to_attachments' );

Com isso, teremos a opção de adicionar tags, e a página da Biblioteca de mídias agora mostrará Tags em uma das colunas.

Criando taxonomias customizadas em suas mídias

Em alguns casos você pode desejar utilizar uma taxonomia customizada ao invés de categorias ou tags. Você pode utilizar também taxonomias customizadas de forma simples, registrando e aplicando no post type ‘attachment’

No exemplo abaixo, note que partimos da idéia de adicionar a taxonomia personalizada ‘Localização’ para classificar todas as imagens.

function wptp_add_localizacao_taxonomy() {
$labels = array(
'name' => 'Localizações',
'singular_name' => 'Localização',
'search_items' => 'Pesquisar Localizações',
'all_items' => 'Todas as Localizações',
'parent_item' => 'Parent Location',
'parent_item_colon' => 'Parent Location:',
'edit_item' => 'Editar Localização',
'update_item' => 'Atualizar Localização',
'add_new_item' => 'Adicionar nova Localização',
'new_item_name' => 'Nova Localização',
'menu_name' => 'Localização',
);

$args = array(
'labels' => $labels,
'hierarchical' => true,
'query_var' => 'true',
'rewrite' => 'true',
'show_admin_column' => 'true',
);

register_taxonomy( 'localizacao', 'attachment', $args );
}
add_action( 'init', 'wptp_add_localizacao_taxonomy' );

Isso criará uma nova taxonomia hierárquica que pode ser usada apenas nas mídias (attachments).

Se você desejar aplicar em outros tipos de conteúdo, você pode substituir o parâmetro ‘attachment’ na função register_taxonomy() com um array contendo slugs the outros tipos de conteúdo que você quiser:

register_taxonomy( 'location', array( 'attachment', 'post' ), $args );

Note também que a coluna na tela de Mídia irá aparecer, já que o parâmetro show_admin_column está declarado como true.

Usos práticos de tal funcionalidade

Como vimos, é possível sim aplicar categorias e tags em arquivos de mídia, como imagens ou arquivos PDF, utilizando a função register_taxonomy_for_object_type. Vimos também que é possível criar taxonomias customizadas através da função register_taxonomy e a utilizar na biblioteca de mídias.

Com tais implementações, você pode ter um grande número de aplicações práticas, tais como:

  • Criar um arquivo attachment.php em seu tema e exibir arquivos de mídia no formato de galeria, exibindo imagens de diferentes categorias e taxonomias personalizadas.
  • Criar um template específico para taxonomias ou termos e exibir midias diferentes pelo site. Por exemplo, usando a taxonomia Loxalização, podemos criar o arquivo taxonomy-location-rj.php para exibir apenas imagens de tal localização, com um estilização que remeta bem a cidade termo.
  • Categorizar arquivos PDF em um site que disponibiliza muitos arquivos neste formato e permitir a exibição por categorias, tags ou qualquer taxonomia customizada que seja necessária em seu projeto.

Com as dicas acima, você que tem um site com muitas mídias e deseja uma melhor organização do conteúdo na Biblioteca de Mídias terá finalmente seu sonho realizado e um ganho de tempo ao localizar as imagens que deseja 😀

Posts Similares

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

11 Comentários

  1. Cara simplesmente sensacional. Funcionou 100%.

    Mas você sabe como eu faço pra exibir (No post por exemplo) os arquivos de uma determinada categoria?

    Valeu cara, belo trabalho!!!

  2. Oi Guga, tudo bem?
    Sei que esse post é de 2013 e que muita coisa mudou de lá pra cá.
    Tentei implementar isso no meu blog, mas não consegui. Acho que é necessário alguma coisa nova, já que a versão do WP que uso é 4.2.3
    Você saberia o que é necessário para funcionar na minha versão?