Blog sobre WordPress
No Result
View All Result
  • Web Stories
  • Desenvolvimento
  • Infra
  • Mobile
  • Performance
  • Segurança
  • SEO
  • E-commerce
Cadastrar e-mail
  • Web Stories
  • Desenvolvimento
  • Infra
  • Mobile
  • Performance
  • Segurança
  • SEO
  • E-commerce
No Result
View All Result
Blog sobre WordPress
No Result
View All Result

Início » Desenvolvimento WordPress » WP_Taxonomy no WordPress 4.7

WP_Taxonomy no WordPress 4.7

by
6 anos ago
Reading Time: 5 min
3
WP_Taxonomy no WordPress 4.7
Compartilhe no FacebookCompartilhe no LinkedIn
Audio

Tivemos um post aqui no blog falando de uma implementação realizada no WP 4.6 que foi a introdução da classe WP_Post_type e como ela nos beneficia em nosso desenvolvimento. Hoje nosso foco será uma nova classe inserida na versão 4.7 do WordPress, a WP_Taxonomy.

Conteúdo relacionado

Como criar Web Stories no WordPress

Como criar blocos reutilizáveis no Gutenberg

Como habilitar recursos ocultos do Gutenberg no tema WordPress

O WordPress 4.7 ainda está na versão beta, porém ao longo de seus releases estamos testando o que de novo ele está trazendo para o mundo dos devs, então, sem mais delongas, estarei descrevendo abaixo o que mudou com a inserção dessa classe e como ela nos beneficia como desenvolvedores.

Acompanhe em primeira mão tudo sobre o WordPress

O que mudou com a chegada da WP_Taxonomy?

A variável global $wp_taxonomies que antes recebia um array de objetos da stdClass, agora recebe um array de objetos da WP_Taxonomy.

Valor retornado da variavel wp_taxonomies antes e depois

Esta nova classe, fornece métodos para trabalhar com reescrita de regras ( rewrite rules ) e hooks, métodos estes que são utilizados internamente pelas funções register_taxonomy() e unregister_taxonomy().

Os seguintes métodos se encontram dentro da WP_Taxonomy, e estes são utilizados pelas funções citadas acima:

  • add_rewrite_rules()
  • add_hooks()
  • remove_rewrite_rules()
  • remove_hooks()

A seguinte função foi modificada para retornar um objeto WP_Taxonomy:

  • get_taxonomy()

Os seguintes parâmetros agora são um objeto desta nova classe:

  • O segundo parâmetro $taxonomy do hook xmlrpc_prepare_taxonomy.
  • O segundo parâmetro $tax do hook term_search_min_chars.

A seguinte função agora aceita um objeto da WP_Taxonomy:

  • get_taxonomy_labels()

Novas capabilities para a gestão de taxonomias

Além das mudanças já citadas, o WordPress 4.7 apresenta novos termos de taxonomias individuais, permitindo que os desenvolvedores implementem um controle mais detalhado a respeito de um gerenciamento de termos (categorias, tags e termos de categorias personalizadas (custom category)). As novas capabilities são meta capabilities que, em última análise, mapeam de volta os recursos já existentes, portanto, não há nenhuma mudança no comportamento das funcionalidades existentes e usuários.

Novas Capabilities

  • edit_term
  • delete_term
  • assign_tem

Da mesma forma que os recursos como edit_post e delete_user são usados para verificar se um pode ou não executar uma ação para um post ou usuário específico, esses novos recursos podem ser usados para verificar se um usuário pode ou não executar uma ação para um termo específico.

Quer aprender mais sobre a WP_Taxonomy no WordPress 4.7?

Click To Tweet

Caso esteja verificando um dos novos recursos, você pode incluir o term_id como segundo parâmetro. Exemplo:

if ( current_user_can( 'edit_tem', $term_id ) ) {
    printf( '<a href="%s">Editar</a>', get_edit_term_link( $term_id ) );
}

Como havia dito, as novas capabilities são meta capabilities o que significa que, em última análise, mapeam de volta para a capability manage_categories já existente por padrão, ou qualquer outra que seja especificada nos argumentos quando estiver registrando a taxonomia. As capabilities podem ser filtradas usando o filtro map_meta_cap, da seguinte forma:

add_filter( 'map_meta_cap', function( $required_cap, $cap, $user_id, $args ) {
    switch( $cap ) :
        case 'delete_term':
            $term_id = $args[0];
            // Prevent a "protected" term from being deleted:
            if( get_term_meta( $term_id, 'protected', true ) ) {
                $required_cap[] = 'do_not_allow';
            }
            break;

        case 'edit_term':
            // Introduce some anarchy:
            if( rand( 1, 6 ) == 3 ) {
                $required_cap = 'do_not_allow';
            }
            break;
    endswitch;
    
    return $required_cap;
}, 10, 4);

Separando Capabilities por Tags e Categorias

Uma outra alteração é que agora a taxonomia de tag usa capabilities separadas da taxonomia de categoria (antes usava-se as mesmas capabilities para ambas as taxonomias). Isso não altera o comportamento já existente, mas significa que agora podemos segmentar os recursos de tags separadamente das categorias. Por exemplo:

add_filter( 'map_meta_cap', function( $required_cap, $cap, $user_id, $args ) {
    switch( $cap ) :
        case 'manage_post_tags':
        case 'edit_post_tags':
        case 'delete_post_tags':
        case 'assign_post_tags':
            // Allow Authors to manage tags:
            $required_cap = array( 'publish_posts' );
            break;
    endswitch;    
    return $required_cap;
}, 10, 4);

Conclusão

A introdução de uma classe como a WP_Post_Typee a WP_Taxonomy, fora outras que possam estar vindo a serem inseridas, tornam as melhorias do WordPress ainda mais viáveis. Estamos aguardando para ver quais outras novidades estão por vir nesta nova versão 4.7 do WordPress.

Tags: capabilitiescategoryhookstaxonomiaWordPress 4.7
Share8Share1SendShare
Previous Post

WordPress 4.7 – Mudanças no Editor de Texto para melhor utilização

Next Post

Idioma específico para cada usuário no admin do WordPress 4.7

Related Posts

Anatomia do Gutenberg, o editor do WordPress
Desenvolvimento WordPress

Anatomia do Gutenberg, o editor do WordPress

13 de janeiro de 2021
As vantagens do editor Gutenberg para WordPress
Desenvolvimento WordPress

As vantagens do editor Gutenberg para WordPress

19 de agosto de 2020
Metodologia BPM para melhoria de processos dentro da empresa
Desenvolvimento WordPress

Metodologia BPM para melhoria de processos dentro da empresa

15 de janeiro de 2021
Scrum e PMBOK - aliados na gestão de projetos
Desenvolvimento WordPress

PMBOK e Scrum: grandes aliados na gestão de projetos

15 de janeiro de 2021
Next Post
wp-4-7-barbara-linhaus-idioma-especifico

Idioma específico para cada usuário no admin do WordPress 4.7

O novo WordPress 4.7 e o atributo ALT

O novo WordPress 4.7 e o atributo ALT

Comments 3

  1. Bruno Barros says:
    6 anos ago

    O argumento do filtro ‘map_meta_cap’ é $required_cap, mas na atribuição do valor foi usado $required_caps (com esse). Acho que isso está errado, não?
    Abs,

    Responder
    • Paulo Ferreira says:
      6 anos ago

      E aí Bruno, cara, muito obrigado, realmente havia escrito errado, atencioso se sua parte. Continue por dentro das novidades do WP4.7 e tenha um bom desenvolvimento! Abraços.

      Responder
  2. Pingback: WordPress 4.7 - Já está por dentro das novidades?

Deixe um comentário Cancelar resposta

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

Receba no seu e-mail uma série de conteúdos sobre Infra para WordPress.

  • Este campo é para fins de validação e não deve ser alterado.

Facebook LinkedIn Instagram Twitter Youtube Github RSS

Sobre a Apiki

Empresa especializada em WordPress com três unidades de negócios.

  1. Design e Desenvolvimento;
  2. Infra e Hospedagem;
  3. Suporte e manutenção.

Em resumo, só fazemos uma coisa em WordPress: tudo.

Páginas do Apiki.com

  • Apiki.com
  • Sobre a Apiki
  • Hospedagem
  • Desenvolvimento
  • UX & UI para WordPress
  • Growth em WordPress
  • Suporte
  • Atendimento

Páginas do Blog

  • Sobre
  • Newsletter
  • Desenvolvimento WordPress
  • Segurança para WordPress
  • WordPress Mobile
  • Infra para WordPress
  • WordPress SEO
  • WordPress Performance
  • E-commerce

© 2020 Apiki - Empresa especializada em WordPress.

No Result
View All Result
  • Web Stories
  • Desenvolvimento
  • Infra
  • Mobile
  • Performance
  • Segurança
  • SEO
  • E-commerce

© 2020 Apiki - Empresa especializada em WordPress.