A versão 4.6 do WordPress traz 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( <span class="arg-type">string</span> <span class="arg-name">$post_type</span>, <span class="arg-type">array|string</span> <span class="arg-name">$args</span> = <span class="arg-default">array()</span> )
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 etc.
Recomendo que acompanhe outras funcionalidades que foram colocadas no core da mais nova versão do WordPress.