Minha experiência construindo 4 plugins de bloco em uma semana – WP Tavern

Eu construí quatro plugins de bloco na semana passada. Não era algo que eu tinha planejado fazer. Não acordei um dia e declarei: “Acho que vou construir um conjunto de tipos de blocos personalizados nos próximos dias”. Simplesmente aconteceu.

O primeiro plugin que criei foi para resolver um ticket antigo para Gutenberg que não havia visto nenhuma tração. Talvez outros não estivessem interessados ​​na ideia, ou ela nunca cruzou seu caminho no mar de milhares de outros ingressos. Por que não construí-lo eu mesmo? Então eu fiz. Demorou algumas horas, mas grande parte desse tempo foi reconfigurando o @wordpress/scripts construir script ao meu gosto e ler documentos.

Com esse plugin fora do caminho, comecei a buscar novos problemas para resolver. Um que já estava no meu radar era o bloco de Título de Comentários que faltava, necessário para trazer o próximo bloco Loop de Consulta de Comentários para apresentar paridade antes do WordPress 6.0 chegar. Então, eu construí um plugin áspero para ele.

Editor de site WordPress com um loop de consulta de comentários inserido.  Na parte superior, um bloco de Título de comentários é destacado.
Comentários Bloco de título no editor do site.

Felizmente, outros pegaram essa ideia inicial e correram com ela, construindo algo muito mais flexível do que minha primeira tentativa. Agora, há um novo bloco em Gutenberg.

Eu tinha algumas outras coceiras que queria coçar, e havia pouco a fazer em um domingo cheio de chuva. Ou seja, o WordPress não inclui blocos equivalentes para o wp_list_users() e wp_list_authors() marcas de modelo. Isso parecia um descuido, então eu abordei as primeiras versões deles.

Vou colocá-los gratuitamente no diretório oficial de plugins do WordPress em breve para pessoas interessadas neles. Só espero que ajudem alguém no futuro.

Este post é sobre compartilhar minha experiência, a jornada, e não o que aconteceu com tudo isso.

Recentemente, alguém perguntou se eu poderia operar neste mundo de blocos pesado em JavaScript como desenvolvedor. Já se passaram mais de dois anos desde que assumi um cargo de escritor aqui no WP Tavern e desenvolvi soluções do mundo real para os usuários. Eu estava apenas começando a usar JavaScript com o editor de blocos naquela época.

Desde então, tenho me envolvido com temas de bloco, até mesmo lançando um no WordPress.org. Eu construí alguns projetos baseados em PHP para me divertir no meu tempo livre. Eu até criei meu primeiro plugin de bloco personalizado no verão passado e compartilhei minha experiência com os leitores. Pouco depois, eu construí um segundo.

Aquela chama ardente que eu tinha quase um ano atrás rapidamente se apagou. Isso tinha mais a ver com o estado do desenvolvimento do tema do bloco, que ainda estava em sua infância, do que qualquer outra coisa. Eu estava empolgado com seu potencial, mas a quebra consistente era mais do que eu tinha tempo para lidar, considerando que tudo era um projeto paralelo divertido.

No fundo, ainda sou um programador, um solucionador de problemas. Então, comecei de novo.

A primeira parada foi a documentação do JavaScript Build Setup para blocos de construção. Eu ia aprender o “jeito WordPress” desta vez. Na maioria das vezes, eu segui com isso.

O único soluço que tive foi o script de configuração cobrindo meu namespace, x3p0para dentro x_3_p_0 em nomes de funções. Isso foi uma bagunça para limpar. No entanto, não precisei passar por esse processo em outros plugins de bloco. Eu só queria a experiência de iniciante na primeira tentativa.

Para blocos de construção, @wordpress/scripts é tudo o que é necessário. Eu mexi nele, adicionei alguns comandos personalizados e modifiquei as pastas de entrada/saída. No entanto, tem tudo o que é necessário para começar a funcionar rapidamente.

eu pulei além do Olá, mundo! (Olá, mundo!) parte do tutorial de configuração. Sempre que começo a construir qualquer coisa, planejo mergulhar de cabeça em algo um pouco mais complexo. No entanto, nunca é demais aprender o básico para ver como as coisas funcionam.

Meu estilo de programação é baseado no fracasso. Eu me aventuro com uma ideia, falho miseravelmente e continuo aprendendo com meus erros. Pouco tempo depois, eu tinha um tipo de bloco personalizado que mostrava um link para o pai de um comentário aninhado:

Editor do site WordPress mostrando um loop de consulta de comentários com dois comentários.  Um bloco de leitura
Comente o bloco de link pai.

Embora tenha sido um sucesso, aprendi que alguns outros componentes do editor integrados podem torná-lo ainda melhor.

Esse primeiro bloco me deu um gostinho do desenvolvimento moderno no WordPress. Era um plugin relativamente simples de construir, mas era fácil ver como alguém poderia expandi-lo para recursos mais complexos.

O sistema de componentes se tornou um conjunto de ferramentas robusto e flexível para desenvolvedores nos últimos anos. Além disso, a documentação em nível de componente é completa neste ponto, especialmente ao emparelhá-la com o uso no código principal.

À medida que continuei construindo novos blocos, comecei a assumir conceitos mais complexos. Uma das coisas que eu precisava aprender era como interagir com a camada de dados principal. Ao entrar nos meus terceiro e quarto tipos de bloco, precisei consultar os usuários e listá-los:

Editor de postagem do WordPress com um bloco de autores personalizado que lista os usuários com postagens.
Listagem de usuários por meio de um bloco Authors.

Embora haja um tutorial “básico” sobre como trabalhar com dados principais, o guia de referência foi irregular em alguns lugares. Algumas peças até pareciam estar faltando por completo. Onde estavam os guias avançados? Não consegui encontrar nenhum, e “fazer coisas” com dados é a essência do desenvolvimento de plugins quando você vai além de alguns campos de formulário simples.

Passei algum tempo com o testado e comprovado console.log() para descobrir as coisas e examinou o código principal. Eventualmente, eu empurrei e construí alguns projetos de trabalho.

Minha experiência melhorou desta vez em comparação com um ano atrás? Sem dúvida, ele fez.

Mais do que tudo, quero agradecer a todos os colaboradores do projeto Gutenberg. As ferramentas de construção e a variedade de componentes pré-construídos são bem-vindos para este desenvolvedor que passou a maior parte de seu tempo no mundo PHP. Eu sempre gosto de poder pegar um conjunto de ferramentas e começar a construir com ele imediatamente. Tenho certeza de que apenas vislumbrei um pouco do que é possível neste momento, mas estou ansioso para tentar coisas novas. À medida que ficar mais confortável, talvez eu escreva alguns desses tutoriais avançados que acredito estarem faltando.

Originally posted 2022-05-16 13:57:39.

Deixe uma resposta