WordPress Extremo
- Como Criar um Plugin WordPress com Composer e PSR-4 – WordPress Extremo Dia 1
- Como Usar Serviços em Plugins para Código Limpo e Desacoplado – WordPress Extremo Dia 2
- Como Usar Repositórios em Plugins para Separar Lógica de Dados – WordPress Extremo Dia 3
- Injeção de Dependência Manual em Plugins WordPress – WordPress Extremo Dia 4
- Hooks Avançados no WordPress: apply_filters, do_action e boas práticas
- Criando Comandos WP-CLI Personalizados para Plugins WordPress
- Criando Blocos Personalizados com Gutenberg e React
E aí, dev! Aqui é o Asllan novamente, e hoje a gente vai mergulhar numa das ferramentas mais poderosas do WordPress — e, ao mesmo tempo, menos exploradas com profundidade: os hooks avançados.
Sabe aqueles
do_action()
eapply_filters()
que você vê no core do WP?
Pois é… você também pode (e deve) criar os seus.
Isso transforma seu código em uma verdadeira plataforma extensível — onde outras funções, plugins, ou até devs podem “grudar” comportamento no seu sistema sem tocar no código original.
🔍 Hooks: recapitulando rápido
Ações (do_action
)
Servem para disparar eventos. Exemplo: “algo aconteceu aqui”.
Você usa assim:
do_action('wp24h_antes_de_salvar_dados', $dados);
E em outro lugar, alguém pode fazer:
add_action('wp24h_antes_de_salvar_dados', function($dados) {
// faz algo com os dados
});
Filtros (apply_filters
)
Servem para modificar valores antes de usá-los.
$dados = apply_filters('wp24h_filtra_dados', $dados);
Depois, outro código pode fazer:
add_filter('wp24h_filtra_dados', function($dados) {
$dados['extra'] = 'adicionado por outro plugin';
return $dados;
});
🧪 Criando hooks personalizados no seu plugin
Hoje, vamos simular uma lógica onde nosso HelloService
dispara um do_action
e um apply_filters
.
HelloService.php (atualizado)
use WpArquiteturaExtrema\Repositories\UserRepository;
class HelloService {
protected $repo;
public function __construct(UserRepository $repo) {
$this->repo = $repo;
}
public function execute() {
$editors = $this->repo->getEditors();
// permite modificar os usuários antes de processar
$editors = apply_filters('wp24h_before_process_users', $editors);
foreach ($editors as $user) {
error_log("Processando editor: {$user->display_name}");
}
// avisa que finalizou
do_action('wp24h_users_processed', $editors);
}
}
Agora qualquer outro plugin, trecho de código ou mesmo o seu functions.php
pode “ouvir” e reagir a esses eventos.
📦 Benefícios dessa abordagem
- Permite criar plugins extensíveis — como WooCommerce, que é 90% hooks
- Facilita testes, customizações e integrações
- Torna seu código uma mini plataforma que outras soluções podem consumir
💡 Dica bônus
Use um prefixo único nos seus hooks (como
wp24h_
) para evitar conflitos com outros plugins.
E documente bem seus hooks — principalmente se você for distribuir ou vender seu plugin.
🧠 Conclusão do Dia 5
- Você aprendeu a criar e usar hooks personalizados
- Entendeu a diferença entre
do_action()
eapply_filters()
- Tornou seu plugin muito mais flexível e preparado pra escalar
🔜 No Dia 6…
Vamos explorar o uso de WP CLI com comandos personalizados, para executar ações direto no terminal — uma habilidade ninja para devs WP sérios.
💬 Curtiu esse conteúdo?
Esse tipo de arquitetura é o que ensino nas minhas mentorias e cursos práticos de WordPress Profissional.
Se quiser acelerar o aprendizado e criar plugins de verdade, fala comigo!
Ou comenta aqui embaixo que eu te ajudo 🚀