Os widgets baseados em blocos estão prontos para pousar no WordPress 5.6?

Publicados: 2020-10-14

Duas semanas atrás, a equipe de Gutenberg lançou uma chamada aberta para feedback de widgets baseados em blocos. Eu já havia escrito uma longa revisão do novo sistema no início de setembro, mas um membro da equipe me pediu para compartilhar meus pensamentos sobre a iteração mais recente. Com o próximo congelamento do WordPress 5.6 Beta 1 daqui a apenas uma semana, achei que não faria mal fazer outro mergulho profundo.

Para referência, meu teste mais recente é contra a versão 9.2.0-alpha-172f589 do plug-in Gutenberg, que foi uma compilação de hoje. O desenvolvimento do Gutenberg se move rapidamente, mas tudo deve ser preciso até esse ponto.

Em última análise, muitos dos problemas que apontei há mais de um mês ainda existem. No entanto, a equipe limpou a maioria dos pequenos problemas, como apontar as setas de abrir/fechar para barras laterais (áreas de bloco) na direção correta e torná-la mais consistente com a tela de pós-edição. A interface do usuário é muito mais polida.

Antes de mergulhar em todos os problemas, quero responder à pergunta que estou propondo. Sim, o sistema de widget baseado em bloco estará pronto para o horário nobre quando o WordPress 5.6 chegar. Ainda não está lá, mas está em um ponto em que há uma linha de chegada clara que pode ser alcançada nos próximos dois meses.

Ignorarei a falha dos widgets baseados em blocos no personalizador, que chegou ao Gutenberg 8.9 e foi removido no 9.1. Também analisarei a proposta recente de reconstruir a tela de widgets para usar a API de personalização, pelo menos por enquanto. Há muitos problemas que os widgets baseados em blocos apresentam para o personalizador, e esses problemas são insuperáveis ​​para o WordPress 5.6. A longo prazo, o WordPress precisa ter um único local para editar áreas de widget/bloco. Os usuários provavelmente terão que conviver com algumas inconsistências por um tempo.

Supondo que a equipe não tente lançar uma Ave Maria de última hora e implementar a edição completa de blocos no personalizador nesta rodada, é seguro dizer que os widgets baseados em blocos estão a caminho de uma estreia bem-sucedida do WordPress 5.6.

A experiência do usuário

Adicionando um widget à tela de edição de widgets no Gutenberg.
Tela de widgets baseados em blocos.

Como usuário, eu realmente gosto de usar a nova tela de administração de Widgets. As áreas de bloco de formato livre e aberto criam possibilidades incalculáveis ​​para projetar meus sites WordPress. Os widgets tradicionais eram limitados em escopo. Os usuários foram limitados a um punhado de widgets principais, possivelmente alguns widgets de plug-in e o que quer que o autor do tema oferecesse. No entanto, com blocos, o conjunto de opções se expande para pelo menos triplicar as opções prontas para uso (não estou contando blocos do tipo incorporado individualmente). Além disso, os blocos fornecem um conjunto muito mais extenso de opções de design do que um widget tradicional.

Em comparação, os widgets tradicionais estão desatualizados. Os blocos são superiores em quase todos os aspectos. No entanto, ainda existem problemas com este novo sistema.

O maior problema agora é que os usuários finais podem sair da tela Widgets sem salvar suas alterações. Não há nenhum aviso para deixá-los saber que todo o seu trabalho está prestes a se perder no éter. Este é um daqueles itens de nível OMGBBQ que precisam acontecer antes do WordPress 5.6 cair.

Um recurso interessante, mas não necessário, seria a capacidade de arrastar blocos de uma área de bloco para outra. No antigo sistema de widgets, os usuários podiam mover widgets de barra lateral para barra lateral. A alternativa atual é copiar um widget, colá-lo em uma nova área de bloco e remover o original.

Também não sou fã de não ter a opção da barra de ferramentas superior, que fica disponível na tela de pós-edição. Uma das razões para usar esta barra de ferramentas é porque não gosto da barra de ferramentas pop-up padrão em blocos individuais. É uma distração e muitas vezes atrapalha o meu trabalho.

Widgets legados parecem ainda ser um trabalho em andamento. O bloco Legacy Widget não funcionou para mim às vezes. Então, magicamente começou a funcionar. No entanto, o Gutenberg agora adiciona automaticamente widgets de terceiros registrados ao insersor de blocos como se fossem blocos.

Inserindo um widget legado de terceiros no sistema de widgets do Gutenberg.
Fazendo o widget de um plugin funcionar.

Isso apresentou seus próprios problemas. A única maneira de fazer widgets de plugins de terceiros funcionarem foi inserir o widget, salvar e atualizar a tela de widgets. Nesse ponto, os widgets apareceram e se tornaram editáveis.

A experiência do autor do tema

Uma das minhas maiores preocupações para os autores de temas agora é que não parece haver nenhuma documentação no manual do editor de blocos. Há muito tempo para fazer isso acontecer, mas há coisas que os autores do tema precisam estar cientes. Ter um local centralizado, mesmo enquanto o recurso está em desenvolvimento, os ajudaria a se preparar para a versão 5.6.

Algumas dessas perguntas, que podem ser respondidas em várias postagens do blog Make, devem existir em uma página de documentação dedicada:

  • Como um tema pode desativar widgets baseados em blocos?
  • Quais são os ganchos para adicionar estilos personalizados para a tela Widgets?
  • Os temas podem segmentar estilos de barra lateral específicos na tela Widgets?
  • É possível estilizar consistentemente seções como widgets tradicionais no front-end?
  • Os temas podem optar por alinhamento amplo e completo em áreas de bloco, que podem ser usadas essencialmente de maneira semelhante à área de conteúdo da postagem?

Estas são algumas das perguntas que eu gostaria que fossem respondidas como um ex-autor do tema. Não estou mais no meio do jogo de design de temas e presumo que aqueles que estão teriam uma lista maior de perguntas.

Uma documentação menos óbvia deve se concentrar em como lidar com fallbacks ou widgets padrão . Tradicionalmente, os temas que precisavam mostrar um conjunto padrão de widgets verificavam se a barra lateral possui widgets e voltavam a usar the_widget() para gerar um ou mais padrões. Embora os autores de temas ainda possam fazer isso, devemos começar a fazer a transição deles para o sistema de blocos.

Os autores do tema devem copiar/colar o HTML do bloco como um substituto? O sistema de conteúdo inicial seria melhor para isso e o conteúdo do widget inicial pode lidar com blocos? Qual é o método recomendado para fallbacks de widget no WordPress 5.6?

Ainda há a questão em andamento de como os autores de temas devem lidar com o widget tradicional e o HTML wrapper de título de widget no novo paradigma de bloco. Um patch adicionado desde o lançamento do Gutenberg 9.1 envolve cada bloco de nível superior com o wrapper de widget. Se isso chegar à versão 9.2, provavelmente piorará o problema.

No sistema tradicional, tanto o título quanto o conteúdo do widget são agrupados em um contêiner. No entanto, se um usuário adicionar um bloco Heading (título do widget) e outro bloco (conteúdo do widget), cada bloco será encapsulado separadamente com os wrappers de widget do tema. A única maneira de corrigir a situação atual é os usuários finais adicionarem um bloco de grupo para cada “widget” que desejam, o que exigiria uma extensa reeducação para os usuários do WordPress. Não é um cenário ideal.

Visualização ao vivo e de código de HTML de wrapper de widget incorreto em Gutenberg.
Cada bloco é empacotado como uma seção individual.

Em vez de tentar “corrigir” diretamente esse problema, o WordPress não deve fazer nada na saída. Blocos e widgets tradicionais são fundamentalmente diferentes.

Deixe que os autores do tema tomem as rédeas deste e explorem as possibilidades. No entanto, dê a eles as ferramentas para fazer isso, como o suporte a padrões de bloco.