0
50

SHARE

Criando Hooks Personalizados com do_action e apply_filters

Hooks Avançados no WordPress: apply_filters, do_action e boas práticas

Aprenda como criar hooks personalizados com do_action e apply_filters para deixar seus plugins WordPress modulares e extensíveis. Arquitetura profissional de verdade
Este post é a parte 5 de 18 da Série WordPress Extremo

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() e apply_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() e apply_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 🚀

Navegação<< Injeção de Dependência Manual em Plugins WordPress – WordPress Extremo Dia 4Criando Comandos WP-CLI Personalizados para Plugins WordPress >>

Não perca mais nenhuma atualização aqui!

Ative as Notificações!

Clique aqui e, em seguida, clique em Permitir na caixa que aparecerá na parte superior da janela, próximo à barra de endereços.

Torne-se um Assinante e Eleve seu Conhecimento do WordPress!

Acesso Exclusivo, Suporte Especializado e Muito Mais.

Se você está aproveitando nosso conteúdo gratuito, vai adorar os benefícios exclusivos que oferecemos aos nossos assinantes! Ao se tornar um assinante do WP24Horas, você terá acesso a:

Não perca a oportunidade de maximizar seu potencial no WordPress. Clique no botão abaixo para se tornar um assinante e leve suas habilidades ao próximo nível!

Não perca mais nenhuma atualização aqui!

Tabela de Conteúdo
PUBLICIDADE
Últimos Posts
Segurança Profunda em Plugins WordPress

Segurança Profunda em Plugins WordPress

Como Tratar Erros e Exceptions em Plugins WordPress do Jeito Certo

Tratamento de Erros e Uso Inteligente de Exceptions em Plugins WordPress

Como Implementar um Sistema de Logs Profissional em Plugins WordPress

Como Gerenciar Logs e Erros Internos em Plugins WordPress (Do Jeito Certo)

Como Criar um Bloco WordPress com Filtro por Múltiplas Categorias

Bloco de Posts com Filtro por Múltiplas Categorias

Como Filtrar Posts por Categoria em um Bloco Gutenberg

Filtrando Posts por Categoria no Editor do Bloco

Como Criar um Bloco Dinâmico no WordPress com Renderização PHP

Bloco Dinâmico com Renderização no Servidor

Você precisa estar logado para ver esta informação.

Torne-se um Assinante e Eleve seu Conhecimento do WordPress!

Acesso Exclusivo, Suporte Especializado e Muito Mais.

Se você está aproveitando nosso conteúdo gratuito, vai adorar os benefícios exclusivos que oferecemos aos nossos assinantes! 

Não perca a oportunidade de maximizar seu potencial no WordPress. Clique no botão abaixo para se tornar um assinante e leve suas habilidades ao próximo nível!