Preparando-se para o WordPress 5.4: Alterações de tema e plugins que os desenvolvedores devem conhecer

Publicados: 2020-03-05

Com o lançamento do WordPress 5.4 se aproximando, é hora dos desenvolvedores de plugins e temas começarem a testar suas extensões e garantir que não haja problemas. Há também novas APIs para os próximos recursos. Ontem, a equipe principal lançou o primeiro release candidate para 5.4. O lançamento oficial está previsto para 31 de março.

Este post servirá como um guia rápido com links para várias mudanças importantes que os desenvolvedores precisam ter em mente nas próximas semanas. Certifique-se de testar seus plugins e temas.

Desenvolvedores de temas

Captura de tela do novo bloco de ícones sociais em uso por meio do editor de blocos.
Novo bloco de ícones sociais.

Existem várias mudanças que os autores do tema vão querer testar. O WordPress 5.4 tem alguns recursos extras de tema. Ele também possui várias alterações relacionadas à marcação que podem quebrar designs de temas no front-end e no editor de blocos. Infelizmente, para autores de temas que desejam oferecer suporte a várias versões do WordPress, algumas dessas alterações podem significar um pouco de excesso de CSS.

Blocos de ícones e botões sociais

O WordPress 5.4 apresenta dois novos blocos: ícones e botões sociais. O bloco de ícones sociais permite que os usuários insiram ícones/links para até 40 redes sociais diferentes. O bloco de botões permite que os usuários agrupem vários blocos de botões. Os autores de temas que estão lançando estilos de editor de blocos personalizados precisam levar em conta esses novos blocos para garantir que eles sejam produzidos corretamente.

Criar predefinições de gradiente personalizadas

A nova API de gradientes permite que os autores de temas definam predefinições de gradiente personalizadas para os usuários usarem com o grupo ou os blocos de botões. Os autores de temas precisarão fazer algum trabalho braçal para melhorar a monstruosidade que são as predefinições de gradiente padrão. Com um pouco de trabalho, os gradientes podem ser uma ferramenta útil à disposição do usuário. Os autores de temas também podem desativar totalmente os gradientes se preferirem não suportá-los.

Marcação do editor de blocos e alterações de estilo

Os autores de temas que têm como alvo direto classes de editor específicas precisarão verificar seus estilos de editor de bloco. Muitas classes com o prefixo editor- foram alteradas para usar o prefixo block-editor- . O elemento wrapper com a .edit-post-layout__content foi completamente removido. Vários elementos wrapper foram removidos dos blocos e do componente rich text. O preenchimento interno do Core e as margens negativas nos blocos foram refatorados, o que é uma adição bem-vinda. Talvez os autores de temas não precisem mais lutar contra vários seletores aninhados para fornecer um layout básico e funcional que corresponda ao front-end.

Essas mudanças já quebraram vários temas que eu vi. Há uma boa chance de muitos autores de temas precisarem atualizar seus estilos de editor de blocos.

Em um momento em que a Equipe de Revisão de Temas está solicitando que mais autores de temas enviem temas com estilos de editor personalizados, esses tipos de alterações nas classes e na marcação não aumentam a confiança. Desenvolvedores de temas podem facilmente sentir que estão lutando uma batalha perdida. No entanto, o trabalho está avançando para tornar a marcação do editor mais próxima de uma correspondência direta com o front-end. Em algum momento, os autores de temas podem apenas esperar que não precisem mais lidar com esses tipos de alterações enquanto dão suporte aos usuários em várias versões do WordPress. Por enquanto, eles estão em uma fase de transição um tanto confusa.

Marcação de calendário e alterações de classe

A equipe principal alterou a marcação da função get_calendar() , que também afeta o widget Calendário. A saída do calendário não tem mais um elemento <tfoot> . Em vez disso, os links do mês anterior e do mês seguinte foram movidos para um elemento <nav> abaixo do elemento <table> .

A saída do calendário também adiciona ou altera vários IDs e classes:

  • .wp-calendar-table adicionado ao elemento wrapper.
  • .wp-calendar-nav adicionado ao elemento wrapper de navegação.
  • .wp-calendar-nav-next substitui o #next ID no link do próximo mês.
  • .wp-calendar-nav-prev substitui o #prev ID no link do mês anterior.

Estas são mudanças de ruptura. Qualquer CSS personalizado que tenha como alvo o HTML ou os IDs antigos precisará ser atualizado.

Bloquear desenvolvedores

Captura de tela de um editor de código que mostra o código inicial para criar um plug-in de bloco.
Arquivo JavaScript inicial criado pelo script de andaime de bloco.

Para desenvolvedores de plugins que estão criando blocos personalizados, o WordPress 5.4 apresenta várias novas APIs e ferramentas para trabalhar com o sistema de blocos.

Andaime de bloco

Os desenvolvedores têm um novo pacote NPM para criar rapidamente um plug-in de bloco. Com um único comando de npm init @wordpress/block <plugin-name> o script criará um novo diretório e construirá os arquivos PHP, CSS e JavaScript apropriados necessários para construir um plugin de bloco. Os desenvolvedores podem usar ferramentas JavaScript modernas por padrão ou, opcionalmente, optar por usar uma versão ES5.

A intenção do pacote de andaimes de bloco é que os autores de plugins construam plugins de bloco único que eventualmente chegarão ao diretório oficial do bloco.

API de coleções de blocos

A API Block Collections funciona de forma semelhante às categorias. No entanto, eles são baseados em namespace. Quando um desenvolvedor de plug-in registra uma coleção personalizada, todos os blocos que compartilham o namespace da coleção aparecerão em uma seção personalizada no insersor de blocos. Essa parece ser uma maneira mais inteligente de organizar blocos. Certamente será útil para plugins que criam bibliotecas de blocos, fornecendo uma maneira automática de agrupá-los.

API de variações de bloco

A nova API Block Variations permite que desenvolvedores de blocos criem essencialmente cópias de blocos com uma variação. Cada variação registrada aparecerá como um bloco separado no insersor de bloco para os usuários escolherem.

Um bom exemplo desse recurso é o novo bloco de ícones sociais. É um bloco único com 40 variações para as diversas redes sociais.

Outras alterações relacionadas ao desenvolvedor

Existem algumas outras mudanças dignas de nota que cruzam o território de desenvolvimento de plugins e temas.

Novos ganchos do menu de navegação

Depois de esperar e esperar e esperar, os desenvolvedores finalmente estão recebendo alguns ganchos muito solicitados para adicionar campos personalizados à tela de administração do menu de navegação e ao personalizador. Pelo menos um bilhete remonta a 9 anos, mas é melhor tarde do que nunca. No passado, os desenvolvedores precisavam usar uma classe walker personalizada para fazer algumas das personalizações necessárias. No entanto, apenas uma única classe de walker poderia ser usada por vez, o que significava que vários plugins que faziam alterações não funcionariam juntos.

A equipe principal adicionou o novo gancho wp_nav_menu_item_custom_fields na tela de administração dos menus de navegação, que aparece antes dos botões “mover” para itens de menu individuais. Para paridade com o administrador, os itens do menu de navegação têm um novo wp_nav_menu_item_custom_fields_customize_template no personalizador. Esses ganchos permitirão que os desenvolvedores adicionem campos de formulário personalizados necessários para adicionar dados personalizados aos itens do menu de navegação.

apply_shortcodes() Função Alias

O WordPress 5.4 apresenta uma nova função apply_shortcodes() . É um alias para a função do_shortcode() . A nova função fornece um nome de função mais semanticamente correto. Geralmente, funções com prefixo do_ esperam saída ou algum tipo de ação. Funções com um prefixo de apply_ esperam que os dados sejam retornados.

Se você estiver criando um tema ou plugin com áreas com reconhecimento de shortcode, você vai querer mudar para a nova função. Embora a função do_shortcode() não esteja atualmente marcada para descontinuação, esse deve ser o objetivo final.