Como criar uma taxonomia personalizada
Publicados: 2016-09-07Este é o segundo artigo de uma série de 3 partes sobre o tópico de tipos de postagem personalizados (CPT). Os tópicos discutidos nos outros dois artigos são:
- Tipos de postagem personalizados e como criá-los
- Exibindo tipos de postagem personalizados – modelos e consultas
Nesta postagem do blog, veremos como criar uma taxonomia personalizada e como conectá-la a um tipo de postagem personalizada.
O que é uma taxonomia personalizada?
Vamos começar com apenas, o que é uma taxonomia? Eu gosto da definição oficial do WordPress: uma taxonomia é uma maneira de agrupar as coisas.
O WordPress possui 4 taxonomias padrão: Categoria, Tag, Categoria de link e Formatos de postagem. Definitivamente, o mais usado dos quatro são categorias e tags. A taxonomia de categorias permite agrupar postagens em categorias lógicas, que você mesmo pode definir. A taxonomia de tags é muito semelhante, mas pode ser usada mais livremente. Um único grupo em uma taxonomia é chamado de termo. Cada taxonomia também tem sua página de “índice”, onde são exibidos todos os posts do mesmo termo (as URLs dessas páginas se parecem com: 'taxonomia/termo' ).
Portanto, uma taxonomia personalizada é exatamente o que o nome sugere, é seu próprio grupo personalizado de postagens (ou tipos de postagem personalizados). Se tivéssemos uma resenha de livro como um tipo de postagem personalizado, um bom exemplo de taxonomia personalizada seria gêneros de livros.
Apenas para refrescar a memória: no artigo anterior sobre Custom Post Types, usamos o exemplo CPT of Testimonials para o nosso tema Shaka, então continuaremos a usá-lo aqui também.
Então, temos o tipo de postagem personalizada Testemunhos. Que tipo de taxonomias personalizadas gostaríamos? Quais grupos fariam sentido para este caso de uso? Poderíamos agrupar depoimentos com base em qual serviço eles estavam se referindo. Assim poderíamos ter uma taxonomia personalizada de serviços (surf, kitesurf, mergulho). Outra taxonomia personalizada poderia ser locais, onde os usuários experimentaram esse serviço e assim por diante.
Você pode criar uma taxonomia personalizada para cada grupo lógico que puder imaginar.
Como você pode criar uma taxonomia personalizada?
Assim como nos tipos de postagem personalizados, há duas maneiras de registrar uma taxonomia personalizada. Você pode criá-lo com um plugin ou escrever um pouco de código PHP.
As razões e casos de uso para quando fazê-lo por meio de um plugin ou com código são os mesmos dos CPTs, então confira no primeiro artigo.
Aqui, veremos apenas como criar a taxonomia personalizada e como conectá-la ao tipo de postagem personalizada.
Crie uma taxonomia personalizada com um plug-in – a maneira mais fácil
Usaremos o plugin Custom Post Type UI , para registrar a taxonomia customizada, assim como fizemos para o CPT no artigo anterior:
- Instale e ative o plugin Custom Post Type UI no seu painel wp-admin,
- Depois de ativar o plug-in, o item de menu de administração da interface do usuário do CPT estará disponível . Vá para CPT UI -> Adicionar/editar taxonomia
- Insira o slug de taxonomia, nome plural e singular e, em seguida, você deve selecionar qual tipo de postagem para anexar esta taxonomia personalizada recém-criada (outras configurações padrão estão ok). No nosso caso, nomeamos nossa taxonomia customizada: testimonial_service e a anexamos ao tipo de postagem customizada de depoimentos, que registramos no artigo anterior:

- Se agora olharmos para a tela para criar um novo tipo de postagem personalizada de depoimento, você verá a caixa meta Serviços de Testemunhos no lado direito e também um item de submenu à esquerda:

- Pronto, agora podemos adicionar novos serviços que irão agrupar os depoimentos com base nos serviços a que se referem.
Crie uma taxonomia personalizada manualmente – codificação envolvida
Sim, o título diz codificação envolvida, mas isso não é verdade

Você pode usar o gerador de código WP para gerar o código de taxonomia personalizado. Basta clicar nas guias na parte superior e inserir os detalhes de sua taxonomia personalizada. O gerador produzirá um código de registro de taxonomia personalizado válido:
// Register Custom Taxonomy function custom_taxonomy_testimonial_service() { $labels = array( 'name' => _x( 'Testimonial Services', 'Taxonomy General Name', 'text_domain' ), 'singular_name' => _x( 'Testimonial Service', 'Taxonomy Singular Name', 'text_domain' ), 'menu_name' => __( 'Testimonial Services', 'text_domain' ), 'all_items' => __( 'All Items', 'text_domain' ), 'parent_item' => __( 'Parent Item', 'text_domain' ), 'parent_item_colon' => __( 'Parent Item:', 'text_domain' ), 'new_item_name' => __( 'New Item Name', 'text_domain' ), 'add_new_item' => __( 'Add New Item', 'text_domain' ), 'edit_item' => __( 'Edit Item', 'text_domain' ), 'update_item' => __( 'Update Item', 'text_domain' ), 'view_item' => __( 'View Item', 'text_domain' ), 'separate_items_with_commas' => __( 'Separate items with commas', 'text_domain' ), 'add_or_remove_items' => __( 'Add or remove items', 'text_domain' ), 'choose_from_most_used' => __( 'Choose from the most used', 'text_domain' ), 'popular_items' => __( 'Popular Items', 'text_domain' ), 'search_items' => __( 'Search Items', 'text_domain' ), 'not_found' => __( 'Not Found', 'text_domain' ), 'no_terms' => __( 'No items', 'text_domain' ), 'items_list' => __( 'Items list', 'text_domain' ), 'items_list_navigation' => __( 'Items list navigation', 'text_domain' ), ); $args = array( 'labels' => $labels, 'hierarchical' => false, 'public' => true, 'show_ui' => true, 'show_admin_column' => true, 'show_in_nav_menus' => true, 'show_tagcloud' => true, ); register_taxonomy( 'testimonial_service', array( 'testimonials' ), $args ); } add_action( 'init', 'custom_taxonomy_testimonial_service', 0 );Você pode colar este código em um plugin recém-criado ou no arquivo theme functions.php. Colei o código diretamente no arquivo functions.php, porque é mais conveniente para este exemplo. O item do submenu Serviços de Testemunho apareceu no menu do painel de administração de Testemunhos e a caixa meta também está lá, assim como na captura de tela na configuração do plug-in acima.
O registro manual da taxonomia personalizada está funcionando, então vamos analisar o código e ver exatamente o que ele faz. A estrutura do código é muito semelhante ao registro de tipo de postagem personalizado no primeiro artigo, mas varia em algumas configurações e chamadas de função:
- Conectamos a função
custom_taxonomy_testimonial_servicena açãoinitdo WP para registrar a taxonomia personalizada, - O primeiro bloco de código dentro da função é um array de rótulos, onde você pode alterar as palavras que serão usadas ao criar/editar taxonomias personalizadas. Dica: Eu recomendaria que você usasse funções de internacionalização de escape. Então, em vez de
_x()e__()eu usariaesc_html_x()eesc_html__(), - O segundo bloco é uma matriz de argumentos/configurações para a taxonomia personalizada. Você pode dar uma olhada na documentação oficial do WP, para ver quais argumentos você pode definir,
- Com o
register_taxonomy( 'testimonial_service', array( 'testimonials' ), $args );call, registramos a taxonomia personalizadatestimonial_serviceque será “anexada” ao tipo de postagem personalizada detestimonialscom os argumentos$args.
Agora que temos o tipo de postagem personalizado e a taxonomia personalizada registrada, basta exibi-los em nosso site WordPress. Este será o tópico da próxima e última postagem do blog sobre tipos de postagem personalizados.
