0
22

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 7 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
Criando Blocos Personalizados com Gutenberg e React

Criando Blocos Personalizados com Gutenberg e React

Como Criar Comandos WP-CLI Personalizados para Plugins

Criando Comandos WP-CLI Personalizados para Plugins WordPress

Como Funciona o apply_filters no WordPress

Como Funciona o apply_filters() no WordPress (com Exemplos Práticos)

Injeção de Dependência Manual em Plugins WordPress

Injeção de Dependência Manual em Plugins WordPress – WordPress Extremo Dia 4

Como Usar Repositórios em Plugins para Separar Lógica de Dados

Como Usar Repositórios em Plugins para Separar Lógica de Dados – WordPress Extremo Dia 3

Como Usar Serviços em Plugins para Código Limpo e Desacoplado - WordPress Extremo Dia 2

Como Usar Serviços em Plugins para Código Limpo e Desacoplado – WordPress Extremo Dia 2

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!