WP 4.6, tudo sobre a versão do WordPress.

0
wp 4.6

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

Melhorias no editor no WordPress 4.6 - Autosave
Mensagem que indica quando há cópias de segurança disponíveis

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.

Melhorias no editor no WordPress 4.6 - copia de seguranca
A mensagem de recuperação exibe acima do título do post
Melhorias no editor no WordPress 4.6 - post recuperado
Após a recuperação o post volta a exibir as correções gravadas

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.

Melhorias no editor no WordPress 4.6 - Link
Link inserido de forma correta.

O editor mostrará claramente se o link está ativo ou não, como está na imagem. Basta ficar ligado.

Melhorias no editor no WordPress 4.6 - link quebrado
Links quebrados recebem destaque em vermelho no WordPress 4.6

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.

WP_Term_Query é a nova classe no WordPress 4.6 para filtrar termos de taxonomias
WP_Term_Query é a nova classe no WordPress 4.6 para filtrar termos de taxonomias

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:

WordPress 4.6 Shiny Updates, antes.
Antigo processo de instalação de um novo plugin.
WordPress 4.6 Shiny Updates, depois.
Novo processo de instalação de um novo plugin.

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.

Ilustração de exemplo de prefetching
Crédito da imagem https://www.keycdn.com/

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.

WP 4.6 Pepper AdamsEstas 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.