A mais nova versão do WordPress já está disponível, o WP 4.6 já se faz presente entre nós desde o dia 16 de agosto. Sem quebrar o costume a nova versão recebeu o nome de mais um mito do Jazz, dessa vez o CMS foi batizado como WordPress 4.6 Pepper, homenageando Park Frederick “Pepper” Adams III, que encantou e ainda encanta muita gente com seu sax barítono.
Provavelmente inspirado pela versatilidade dos maiores jazzistas do mundo, o WordPress sempre trás aos gestores de conteúdo e desenvolvedores novidades interessantes nas suas atualizações, como podemos ver no vídeo oficial de lançamento e no site do WordPress.org.
Gostou? Então vamos falar mais detalhadamente dessas novidades do WordPress 4.6 “Pepper”.
É a vez do WP 4.6
Quem conhece o WordPress sabe que a plataforma é super dinâmica e conta com uma comunidade muito ativa, que busca sempre melhorar o CMS e, ao mesmo tempo simplificá-la ainda mais. Quando o WordPress 4.5 “Coleman” foi lançado, o WP 4.6 já estava sendo desenvolvido, a plataforma recebe de três ou quatro atualizações por ano.
É muito importante manter atualizada a sua versão do WordPress, tanto para acompanhar as tendências da web e incrementar os projetos, quanto para obter ganhos e vantagens em performance, segurança e muitos outros benefícios para seu sistema. Então fique ligado, tenha certeza de que temas e plugins são compatíveis com a nova versão 4.6 do WordPress.
OK, vamos ao que interessa, as novidades da mais nova versão do WordPress.
Avanços no editor
Grandes correções e melhorias foram executadas no editor e elas focam na experiência de desenvolvedores e gestores de conteúdo. Estes novos recursos que foram implementados ao core da plataforma prometem ganho de tempo e diminuição do retrabalho.
Recuperação de conteúdo mais confiável
O WordPress já apresenta a funcionalidade do autosave desde sua versão 3.6. A novidade é que o recurso foi revisto e está mais seguro, ajudando os gestores de conteúdo que sofrem com internet instável ou outros problemas de conexão.
Destaque para links quebrados
A outra novidade é que o editor do WP 4.6 validará automaticamente os links que forem colocados (ou colados) no conteúdo. Gestor ou criador de conteúdo serão alertados visualmente caso hajam links quebrados.
O editor mostrará claramente se o link está ativo ou não, como está na imagem. Basta ficar ligado.
Temos Fontes nativas no Admin
Ter fontes nativas já integradas ao core já é uma realidade e uma facilidade do WordPress 4.6, pois o novo recurso deixa a instalação WP mais rápida, mais bonita para os usuários e mais fácil de dar suporte.
A versão anterior do WordPress ainda utilizava as fontes do Google, com o WP 4.6 as vantagens de usar fontes nativas estão à disposição de todos. Assim, as fontes serão carregadas mais facilmente pelo sistema, o suporte de idioma será melhorado e sistemas web parecerão mais com aplicativos nativos (o que já é tendência).
Em versões anteriores utilizávamos por padrão a fonte Open Sans, agora podemos contar com a Natively que cobre os principais sistemas operacionais incluindo Android, iOS, Windows e Linux.
WP_Term_Query, uma nova classe chegou à família
Não é incomum o WordPress incluir novas classes em suas atualizações para melhorar a filtragem dos seus elementos, já temos classes para posts, usuários, comentários e agora, finalmente a WP_Term_Query que, como qualquer classe serve para filtrar elementos no banco de dados para o desenvolvedor. No caso do WP_Term_Query, a função é filtrar intuitivamente os termos, como seu próprio nome sugere.
Os Termos no WordPress se referem a um item de uma taxonomia. Por exemplo, em uma taxonomia personalizada de cor, cada cor cadastrada seria um termo.
Nas versões anteriores se usava a função get_terms(), que retorna um array de objetos da classe WP_Term, mas seu uso ainda era confuso para os desenvolvedores. A vantagem dessa mudança é que aquele seu código que ainda usa o get_terms() não vai quebrar, a função continuará como um wrapper para a classe WP_Term_Query. No fim das contas, é só manter sua instalação atualizada que tudo dará certo.
Quer ver o que está fazendo? Customizer.
O WordPress se destaca no mundo tecnológico por ser flexível o suficiente para ser personalizado do jeito que você desejar.
O Customizer facilita essa tarefa ainda mais, esta API serve para visualização em tempo real das alterações, dando mais flexibilidade nas opções de personalização de todo o site. Para desenvolvedores que se ligam bastante na estética do projeto o live preview (pré-visualização ao vivo) permite que o usuário tenha acesso ao preview antes mesmo de salvar, atualizar ou postar o conteúdo, independentemente se o tema estiver ativo ou não.
Para utilizar o Customizer não é necessário nenhum conhecimento técnico avançado. A finalidade dessas alterações é manter claro as validações feitas, proporcionando um bom desempenho e facilitação visual para o usuário.
Nos integrando com a REST API
A REST API não é uma novidade no WordPress, já se faz presente desde a versão 4.4 do CMS, mas sua evolução se mostra muito atraente e interessante.
O WP 4.6 recebeu a inclusão de nonces atualizados para respostas autenticadas, a intenção é implementar um novo parâmetro no cabeçalho de retorno, o X-WP-Nonce, uma vez disponível, os clients que utilizam a autenticação via cookie podem pegar um novo nonce e usá-lo para os pedidos subsequentes. Dessa forma, desde que a requisição seja feita em um tempo menor que de 12 horas, a aplicação sempre terá um nonce válido.
Outra novidade é que o auto-discovery link foi incluído nas respostas de cabeçalho no REST API. O recurso pode ser testado visualizando o código HTML, como no exemplo:
<link rel="https://api.w.org/" href="http://example.com/wp-json/" />
Agora é possível ter esse parâmetro no cabeçalho de resposta das requisições feitas para a API.
Meta_registration API
Desde a versão 3.3, o WordPress tem filtros que para sanitizar e definir permissões para seus post metas customizados. Isso pode ser feiot por meio da função register_meta. Antes da versão 4.6 a utilização dessa função era feita da seguinte forma:
<?php add_action( 'init', 'register_example' ); function register_example() { register_meta( 'post', 'example_meta_key', 'sanitize_example', 'auth_example' ); } function sanitize_example( $meta_value, $meta_key, $meta_type ) { return absint( $meta_value ); } function auth_example( $allowed, $meta_key, $post_ID ) { if ( ! current_user_can( 'edit_others_posts' ) ) { $allowed = false; } return $allowed; }
?>
Mesmo depois do WP 4.6, a função destacada anteriormente continuará funcionando. Temos um artigo muito bem detalhado falando como isso irá funcionar.
A grande mudança é que agora existe a $wp_meta_keys, uma global com todas as meta_keys registradas. Fazendo da forma apresentada anteriormente, as meta_keys não serão adicionadas dentro dessa global.
Shiny Updates, o que era bom ficou melhor.
Manter todos os sistemas atualizados é fundamental para a saúde da sua instalação, chato mesmo é ter que fazê-lo manualmente. Mas no WordPress 4.6 o gestor do site pode contar com o Shiny Updates, que deixa a tarefa bem mais simples e fácil.
O “Shiny Updates” é um uma atualização do que herdou o nome do plugin precursor da funcionalidade. As principais mudanças podem ser notadas ao instalar ou atualizar um plugin ou tema:
Com o WordPress 4.6 o Shiny Updates você realizará ações de instalação e atualização sem a necessidade de carregar um nova página.
Resource Hints e seus benefícios para performance
O WordPress tem o costume de adotar novos tipos de implementação que geram benefícios aos desenvolvedores e usuários, uma dessas inovações é focada em Resource Hints. Esta novidade promete grandes melhorias de performance para as instalações em WordPress a partir do 4.6.
Basicamente essa novidade funcionará da seguinte forma, o WP 4.6 detectará os arquivos estáticos externos ao seu domínio, inseridos através da função wp_enqueue_style e fará uso da tag <link> com o atributo rel contendo o valor dns-prefetch no cabeçalho da página resultando em um código assim:
<link rel='dns-prefetch' href='//fonts.googleapis.com'> <link rel='dns-prefetch' href='//domino-externo.com'>
Com essa marcação HTML no cabeçalho da página o agente de usuário vai iniciar e antecipar o processo de resolução de DNS em background, melhorando a performance e reduzindo o tempo desse processo.
Os detalhes do comportamento do Resource Hints podem ser encontrados em nosso blog.
HTTP Requests e suas novidades
A versão 4.6 do WordPress recebeu uma repaginada bem interessante e completa no que se diz respeito a requisições HTTP.
Não precisa se preocupar, a biblioteca que virá a substituir a atual, não causará efeitos colaterais pois continua compatível com a interface atual do método wp_remote_request(). O legal desta nova biblioteca é que ela não possui dependências internas diretamente ligadas ao core do WordPress. Autilização dela será de forma independente em qualquer projeto dando maior liberdade ao desenvolvedor.
O WP 4.6 oferece esta nova e melhorada versão da biblioteca de requisições HTTP, com funcionalidades extras como: Suporte padrão, cabeçalhos de requisições case-sensitive, requisições HTTP em paralelo, e muito mais.
Entre as novidades, algumas melhorias foram realizadas no código, esta versão da biblioteca recebeu uma nova chave ao array de resposta retornado pelo método wp_remote_request(), que agora inclui em seu índice chamado http_response um objeto WP_HTTP_Requests_Response com detalhes a respeito da requisição. Um auxílio e tanto para dar mais flexibilidade ao trabalhar com aspectos da WP REST API.
WP_Site_Query e WP_Network_Query para multisites no WordPress 4.6
Para quem usa multisites, sempre há aquelas “complicações” de se localizar um determinado conteúdo em um determinado site e em uma determinada rede. sem falar nas preocupações de performance e segurança.
Como nesse exemplo de consulta básica:
"SELECT * FROM {$wpdb->blogs} WHERE site_id = '{$wpdb->siteid}' ".
No WordPress 4.6 foram criadas duas classes: WP_Site_Query e WP_Network_Query, que resolvem justamente essas questões, deixando o sistema de buscas flexíveis de sites na rede.
É possível realizar consultas usando a tabela $wpdb->blogs
ou $wpdb->sites
por meio de ID, domínio caminho e muito mais. Pode-se ainda associar a filtros e ações, como por exemplo:
WP_Site_Query | WP_Network_Query | |
Actions: | parse_site_query e pre_get_sites |
parse_network_query e pre_get_networks |
Filters: | the_sites, site_search_columns, sites_clauses e found_sites_query |
the_networks, networks_clauses e found_networks_query |
As consultas na versão 4.6 do WordPress se resumem ao uso das classes WP_Site_Query e WP_Network_Query que retorna em uma matriz (array) com a lista de sites correspondentes aos critérios informados para a pesquisa, as entradas da matriz (array) são objetos instanciado pelo WP_Site e WP_Network.
// WP_Site_Query arguments
$args = array (
);
// The Site Query
$site_query = new WP_Site_Query( $args );
// The Network Query
$network_query = new WP_Network_Query( $args );
Essas soluções facilitam o trabalha sem interferir na performance e segurança dos usuários, pois as consultas ficam armazenados em cache.
WP_Post_Type mais uma nova classe
A versão 4.6 do WordPress trás em seu core a nova classe WP_Post_Type. Ela fornecerá métodos para lidar com taxonomias, meta boxes, reescrita de regras (rewrite rules) e também hooks. Cada argumento do tipo post, padrão ou customizado, é agora uma propriedade da nova classe.
O que mudou? Alguns métodos foram 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 )
A nova classe tem a intenção de tornar essas propriedades mais claras, prevenindo a ocorrência de erros acidentais e auxiliando na documentação do código.
A compatibilidade com as versões anteriores do WordPress continua, nesse caso, antigas globais wp_post_types, podem ser um array de objetos do tipo WP_Post_Type.
Hook dinâmico para o footer no WP 4.6
No WP 4.6, tivemos uma sutil implementação que tornou o hook ‘admin_print_footer_scripts‘ em dinâmico. Assim teremos a possibilidade de passar um sufixo para ele.
A implementação foi realizada pois o único hook dinâmico disparado no footer era o ‘admin_footer‘, que acontecia depois do ‘admin_print_footer_scripts’ então, se você quisesse inserir um script para uma página em específico, você precisava colocar em outro hook dinâmico, ou utilizar o próprio ‘admin_print_footer_scripts‘, mas ainda verificando dentro do seu método, se o $hook_suffix era realmente o da página que você precisava.
Essa pequena implementação nos permite agora inserir scripts em páginas específicas no admin, e nos poupa algumas linhas de código, visto que agora não precisaremos fazer uma verificação no $hook_sufix, como era feito antes.
Estas são (resumidamente) as novidades que temos por hoje, mas se você quiser saber mais sobre o WP 4.6 acompanhe nossa série de artigo e fique por dentro de todas as novidades em primeira mão com nosso WordPress Release Overview.