Criando meu primeiro plugin WordPress

Criando meu primeiro plugin WordPress


Criei meu primeiro plugin para WordPress chamado Bulk Classic to Block, e agora ele está disponível no repositório WordPress.org. Foi um processo divertido, mas definitivamente não foi simples, pois levei quase um mês para conseguir o v1.0.0 ao vivo.

Mas estou pronto para explicar tudo em detalhes nesta postagem do blog, então vamos direto ao assunto.

1. A ideia do plugin

Eu tinha um site WordPress muito antigo que estava intocado há anos e ainda usava o Editor Clássico, e como havia centenas de páginas no site, não era possível converter manualmente cada página em Blocos. Então… tive então a ideia de criar um plugin para WordPress que fizesse isso em massa.

Inicialmente não sabia se isso funcionaria ou não, mas pesquisei um pouco e comecei a trabalhar no plugin. Usei o Cursor AI e o Antigravity do Google para desenvolver isso.

2. Envio inicial para WordPress.org

Primeiramente, enviei o plugin para WordPress.org em 29 de novembro de 2025 e recebi o seguinte e-mail imediatamente depois disso.

Envio inicial do plugin WordPress

E então não tive notícias deles por alguns dias.

3. Plugin verificado por um voluntário

13 dias depois, em 8 de dezembro de 2025, recebi o e-mail abaixo informando que um voluntário verificou meu plugin e identificou alguns problemas que precisam ser corrigidos e que eu precisava reenviar a versão atualizada.

Plugin WordPress verificado por um voluntário

Principalmente, os problemas estavam relacionados às duas coisas a seguir (juntamente com as soluções sugeridas):

  • Use comandos wp_enqueue
    • wp_register_script() e wp_enqueue_script() para adicionar código JavaScript de um arquivo.
    • wp_add_inline_script() para adicionar código JavaScript embutido aos scripts declarados anteriormente.
    • wp_register_style() e wp_enqueue_style() para adicionar CSS de um arquivo.
    • wp_add_inline_style() para adicionar CSS embutido ao CSS declarado anteriormente.
  • Nonces e permissões de usuário necessárias para segurança
    • Adicione uma verificação nonce às suas chamadas de entrada ($_POST, $_GET, $REQUEST) para evitar acesso não autorizado.

4. Atualizado e reenviado o plugin

Em seguida, atualizei o plugin de acordo com as sugestões detalhadas do voluntário e o reenviei para aprovação no mesmo dia. E também lhes enviei este e-mail conforme sugerido no e-mail anterior.

Atualizado o plugin do WordPress e enviado este e-mail de confirmação

E então esperei e esperava mais alguns problemas sinalizados pelo voluntário.

5. O plugin é aprovado

Para minha surpresa, hoje recebi este email do WordPress informando que o plugin já está aprovado. Fiquei feliz porque agora deveria estar no ar, mas depois visitar este URL https://wordpress.org/plugins/bulk-classic-to-block/ não mostrou nada.

Plug-in Bulk Classic to Block é aprovado no WordPress.org

Então… revisei o e-mail novamente, desta vez lendo cada linha, para descobrir que agora tenho que enviar o código aprovado para o diretório de plug-ins do WordPress via SVN. Esta informação foi enviada em outro e-mail que você vê abaixo.

Fazendo upload do plugin para o diretório de plugins do WordPress via SVN

Comecei a aprender como usar o SVN para WordPress e então entendi que é um sistema de controle de versão, muito parecido com o Git. Também aprendi que ele pode ser usado via CLI, bem como através de alguns clientes GUI como TortoiseSVN e SmartSVN, novamente, muito parecido com o Git.

6. Carregando o plugin

Decidi usar a CLI para usar svn (Subversion) porque qual é a diversão em usar isso através da GUI. No começo tive que instalar isso no meu computador e estou usando o macOS, então decidi instalar svn via Homebrew executando o seguinte comando:

brew install subversion

A ideia aqui era extrair o repositório público do WordPress.org do meu plugin em uma pasta localmente, copiar os arquivos do plugin nas pastas especificadas e, em seguida, colocar tudo no ar. Os arquivos de código (imagens) foram para o trunk pasta e, em seguida, as capturas de tela e os ícones foram para a pasta assets pasta. Abaixo estão os svn comandos que tive que executar:


svn checkout https://plugins.svn.wordpress.org/bulk-classic-to-block

cd bulk-classic-to-block


svn status

svn add trunk/* assets/* --force

svn commit -m "Initial commit of plugin files"

svn copy trunk tags/1.0.0

svn commit -m "Tag version 1.0.0"

Se desejar, aqui está o texto completo copiado do meu terminal.

deepak@m2air wordpress-org % svn checkout https://plugins.svn.wordpress.org/bulk-classic-to-block
A    bulk-classic-to-block/assets
A    bulk-classic-to-block/tags
A    bulk-classic-to-block/trunk
Checked out revision 3424796.
deepak@m2air wordpress-org % cd bulk-classic-to-block 
deepak@m2air bulk-classic-to-block % ls
assets	tags	trunk
deepak@m2air bulk-classic-to-block % svn status
?       assets/screenshot-1.png
?       assets/screenshot-2.png
?       assets/screenshot-3.png
?       trunk/LICENSE.txt
?       trunk/README.txt
?       trunk/bulk-classic-to-block.php
?       trunk/index.php
?       trunk/js
deepak@m2air bulk-classic-to-block % svn add trunk/* assets/* --force
A         trunk/bulk-classic-to-block.php
A         trunk/index.php
A         trunk/js
A         trunk/js/scripts.js
A         trunk/LICENSE.txt
A         trunk/README.txt
A  (bin)  assets/screenshot-1.png
A  (bin)  assets/screenshot-2.png
A  (bin)  assets/screenshot-3.png
deepak@m2air bulk-classic-to-block % svn status
A       assets/screenshot-1.png
A       assets/screenshot-2.png
A       assets/screenshot-3.png
A       trunk/LICENSE.txt
A       trunk/README.txt
A       trunk/bulk-classic-to-block.php
A       trunk/index.php
A       trunk/js
A       trunk/js/scripts.js
deepak@m2air bulk-classic-to-block % svn commit -m "Initial commit of plugin files"
Authentication realm: <https://plugins.svn.wordpress.org:443> Use your WordPress.org login
Password for 'deepak': ********************************************

Authentication realm: <https://plugins.svn.wordpress.org:443> Use your WordPress.org login
Username: deepakness
Password for 'deepakness': ********************************************

Adding  (bin)  assets/screenshot-1.png
Adding  (bin)  assets/screenshot-2.png
Adding  (bin)  assets/screenshot-3.png
Adding         trunk/LICENSE.txt
Adding         trunk/README.txt
Adding         trunk/bulk-classic-to-block.php
Adding         trunk/index.php
Adding         trunk/js
Adding         trunk/js/scripts.js
Transmitting file data ........done
Committing transaction...
Committed revision 3424811.
deepak@m2air bulk-classic-to-block % svn copy trunk tags/1.0.0
A         tags/1.0.0
deepak@m2air bulk-classic-to-block % svn commit -m "Tag version 1.0.0"
Adding         tags/1.0.0
Adding         tags/1.0.0/LICENSE.txt
Adding         tags/1.0.0/README.txt
Adding         tags/1.0.0/bulk-classic-to-block.php
Adding         tags/1.0.0/index.php
Adding         tags/1.0.0/js
Committing transaction...
Committed revision 3424816.
deepak@m2air bulk-classic-to-block %

E então meu plugin WordPress Clássico em massa para bloquear estava no ar e pude acessá-lo neste URL: https://wordpress.org/plugins/bulk-classic-to-block/

7. Atualizações futuras

Se eu atualizar alguma coisa nos arquivos do plugin no futuro, talvez seja necessário executar os seguintes comandos:

cd ~/bulk-classic-to-block


svn add assets/screenshot-4.png


svn commit -m "Update screenshots and readme"

Acima é quando adiciono uma captura de tela ou uma pequena alteração sem necessidade de atualizar a versão, mas quando tiver que fazer uma nova versão o processo será:

  1. Faça alterações nos arquivos da pasta /trunk
  2. Insira o número da versão em:
    1. Arquivo principal do plugin
    2. arquivo leiame.txt
    3. Seção Log de alterações
  3. Confirme /trunk usando o svn commit -m "message" comando
  4. Crie uma nova tag (importante) executando os seguintes comandos:
svn copy trunk tags/1.0.1
svn commit -m "Tag 1.0.1"

Além disso, alguns outros úteis svn os comandos podem ser:


svn status


svn diff


svn update

É isso!

Escrevi tudo detalhadamente aqui, porque com certeza precisarei relembrar no futuro quando atualizar o plugin ou mesmo quando tiver que publicar um novo plugin no WordPress.

Atualização: 22 de janeiro de 2026

Criei o repositório GitHub para o plugin de código aberto que você pode acessar aqui. Agora, você pode baixar o plug-in nas versões do GitHub ou instalá-lo diretamente por meio do repositório oficial do WordPress.org.

Continuaremos adicionando atualizações de plugins a esta página no futuro.



Source link

Postagens Similares

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *