Bora começar a Criar um Plugin Profissional de verdade? Aqui começa a virada de chave.
E aí, dev! Aqui é o Asllan, e hoje a gente dá o primeiro passo na jornada WordPress Extremo — que vai te levar do desenvolvimento intermediário àquele nível onde você realmente domina o WordPress como plataforma de engenharia, e não só como CMS.
A parada aqui é sair do functions.php
, parar de empilhar função solta e começar a pensar como arquiteto de software.
Hoje vamos montar a estrutura base de um plugin desacoplado*, profissional, usando duas ferramentas poderosas do mundo PHP:
* Desacoplado (ou “desacoplamento”) é uma forma elegante de dizer que as partes do seu código não dependem diretamente umas das outras.
🧰 Antes de tudo: o que você precisa
Pra seguir comigo hoje, você precisa de um ambiente de desenvolvimento local já rodando WordPress.
Se você ainda não tem, pode usar:
- XAMPP, Laragon, DevKinsta ou LocalWP
- Editor de código (recomendo o VS Code)
- Ter o Composer instalado (baixe aqui)
E claro, é bom já ter uma noção básica de PHP, WordPress e saber onde fica o wp-content/plugins
.
🛠️ O que vamos fazer hoje?
Hoje a gente vai criar um plugin do zero, mas não daquele jeito velho de juntar funções num arquivo só.
Vamos criar uma estrutura organizada, modular, com Composer e PSR-4.
Mas calma… que raios são Composer e PSR-4?
📦 Composer: o que é e por que usar?
O Composer é um gerenciador de dependências para PHP, tipo o “npm” do mundo PHP.
Mas além disso, ele cuida de carregar suas classes automaticamente sem você precisar escrever require_once
toda hora.
Com ele, você escreve sua estrutura como um profissional e deixa o Composer se virar com o resto.
🧠 PSR-4: o que significa?
PSR-4 é um padrão de autoloading definido pela comunidade PHP (PHP-FIG). Ele diz assim:
“Se sua classe se chama
Wp24h\Services\MinhaClasse
, ela precisa estar na pastasrc/Services/MinhaClasse.php
.”
Ou seja, ele liga o namespace da sua classe com o caminho do arquivo — e o Composer entende isso e carrega tudo pra você.
Nada de require_once
. Tudo limpo, automático e profissional.
🚀 Mão na massa: Criando nosso Plugin Desacoplado
1. Crie a pasta do plugin
Primeiramente, no seu wp-content/plugins
, crie uma pasta:
wp-arquitetura-extrema/
2. Inicie o Composer
Navegue até essa pasta no terminal e execute:
composer init
Pode aceitar os padrões sugeridos, mas na parte do autoload a gente vai mexer manualmente.
3. Configure o autoload PSR-4
No composer.json
, adicione isso:
"autoload": {
"psr-4": {
"WpArquiteturaExtrema\\": "src/"
}
}
Isso quer dizer: “Composer, toda vez que eu chamar uma classe que começa com WpArquiteturaExtrema\
, procure dentro da pasta src/
”.
Depois disso, rode:
composer dump-autoload
Pronto! Agora qualquer classe que você criar com esse namespace e dentro da pasta src
vai ser automaticamente carregada.
4. Estrutura do plugin
Desse modo, vamos organizar o plugin assim:
wp-arquitetura-extrema/
├── composer.json
├── vendor/
├── wp-arquitetura-extrema.php
└── src/
├── Hooks/
│ └── Init.php
├── Services/
└── Repositories/
Essa estrutura vai crescer muito ainda — mas hoje a gente vai só ativar um hook básico desacoplado.
5. Criando nosso Primeiro h
Hook com Classe
src/Hooks/Init.php
<?php
namespace WpArquiteturaExtrema\Hooks;
class Init {
public function register() {
add_action('init', [$this, 'say_hello']);
}
public function say_hello() {
error_log('WordPress Arquitetura Extrema iniciada!');
}
}
6. Arquivo principal do plugin
wp-arquitetura-extrema.php
<?php
/**
* Plugin Name: WP Arquitetura Extrema
* Description: Plugin com arquitetura organizada seguindo boas práticas
* Version: 1.0.0
* Author: Asllan Maciel
* License: GPL2
*/
defined('ABSPATH') or die('No script kiddies please!');
if (file_exists(__DIR__ . '/vendor/autoload.php')) {
require_once __DIR__ . '/vendor/autoload.php';
}
use WpArquiteturaExtrema\Hooks\Init;
(new Init())->register();
defined('ABSPATH') or die(...);
é uma proteção simples e eficaz pra garantir que seus arquivos PHP só rodem dentro do WordPress — e nunca diretamente pelo navegador.
7. Ativando o debug para testar
No seu wp-config.php
, ative:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
Depois de ativar o plugin, veja se aparece no arquivo wp-content/debug.log
:
WordPress Arquitetura Extrema iniciada!
Se sim, tudo funcionou! 🎉
📚 O que aprendemos hoje
- Como criar a estrutura de um plugin desacoplado
- O que são Composer e PSR-4, e como usar no WordPress
- Como organizar seu código com padrão profissional
- Como acionar hooks com classes ao invés de funções soltas
🧭 E agora?
Esse é só o começo. No Dia 2, a gente vai criar classes de serviço e delegar funções, seguindo princípios de Clean Code e separação de responsabilidades.
💬 Bora trocar ideia?
Ficou com dúvida sobre Composer, PSR-4 ou estrutura de plugin?
Comenta aí ou me chama nas redes:
👉 @wp24horas
🎓 Quer se aprofundar mesmo?
Se você quiser acelerar sua evolução, temos:
- Mentoria Técnicas Personalizadas
- Cursos voltados para WordPress Profissional
- Acompanhamento para Criar Produtos e Serviços com WP
👉 Em breve aqui no wp24horas.com.br