Introdução da nova classe WP_Post_Type

0
wp_post_type

A versão 4.6 do WordPress trás como uma das suas principais novidades a nova classe WP_Post_Type, mudando as antigas globais wp_post_types para agora um array de objetos. A nova classe fornecerá métodos para lidar com taxonomias, meta boxes, reescrita de regras (rewrite rules) e também hooks. Estes são utilizados internamente pelos métodos register_post_type() e unregister_post_type(). Cada argumento do tipo post, padrão ou customizado, é agora uma propriedade da nova classe.

WP_Post_Type chegou! O que muda?

Os seguintes métodos foram agora alterados para retornar um objeto do tipo WP_Post_Type:

register_post_type( string $post_type, array|string $args = array() )

get_post_type_object( string $post_type )
Por exemplo, get_post_type_object() não fornece nenhuma informação sobre as propriedades disponíveis. O método register_post_type() fornece em partes informações sobre as propriedades disponíveis, porém as efetivas propriedades do post diferem do argumento $args. A ideia da nova classe é tornar essas propriedades mais claras, prevenindo a ocorrência de erros acidentais e auxiliando na documentação do código.

As antigas globais wp_post_types podem ser um array de objetos do tipo WP_Post_Type, as propriedades da classe não irão se alterar garantindo a compatibilidade das versões anteriores com a nova versão, a intenção é apenas adicionar benefícios aos métodos anteriores.

Alguns parâmetros de hooks serão agora também objetos do tipo WP_Post_Type:

  • O segundo parâmetro $post_type do hook xmlrpc_prepare_post_type.
  • O segundo parâmetro $post_type_object do hook registered_post_type.
  • O terceiro parâmetro $post_type do hook nav_menu_items_{$post_type_name}.

A função is_post_type_viewable() agora também aceitará um objeto WP_Post_Type.

Conclusão

Agora é aguardar a chegada das novidades do mais recente release do WordPress, para que usuários e desenvolvedores possam desfrutar das novas funcionalidades e facilidades que visam otimizar o trabalho dos mesmos, seja por meio de novas classes, termos, integrações, atualizações e etc.

Recomendo que acompanhe outras funcionalidades que foram colocadas no core da mais nova versão do WordPress.