Skip to main content

Hooks | Wordpress | Frontend

  • Hooks | Wordpress | Frontend

1. O QUE SÃO HOOKS?

Hooks são pontos estratégicos no ciclo de execução do WordPress onde você pode enfiar (com todo o carinho e respeito) seu próprio código, fazendo o WP executar algo extra ou modificar seu comportamento.

Eles existem porque:

  • ninguém deveria mexer no core;
  • todos têm ideias maravilhosas que precisam virar plugins;
  • e, principalmente, porque caos organizado também é organização.

Existem dois tipos:

Action Hooks

Eventos que acontecem no sistema, e aos quais você “reage”.

“Quando isso acontecer, execute a minha função.”

Filter Hooks

Oportunidades de alterar dados antes que eles sejam usados, tipo colocar sal na comida antes de servir.

“Antes de usar esse valor, deixe eu dar uma mexida nele.”


2. COMO FUNCIONA O add_action()?

O formato é:

add_action('nome_do_hook', 'minha_funcao', $prioridade, $quantidade_de_argumentos);
  • nome_do_hook: o momento em que o WordPress vai chamar a sua função.
  • minha_funcao: a função que você quer executar.
  • prioridade: opcional; quanto menor o número, mais cedo ela roda (padrão: 10).
  • argumentos: quantos parâmetros sua função aceita (padrão: 1).

Exemplo clássico:

add_action('wp_enqueue_scripts', 'registrar_assets');

3. COMO FUNCIONA O add_filter()?

O formato é:

add_filter('nome_do_filtro', 'minha_funcao', $prioridade, $argumentos);

O comportamento é igual ao add_action(), mas sua função deve obrigatoriamente retornar um valor — se não retornar nada, prepare-se para o caos.

Exemplo:

add_filter('the_title', function($title) {
return '★ ' . $title;
});

4. A ENGENHARIA DO WORDPRESS: A SEQUÊNCIA DOS HOOKS PRINCIPAIS

Sim, existe uma ordem. Sim, ela parece um ritual de invocação arcana. Não, você não precisa decorar tudo; mas entender essa sequência te torna um mago nível 3.

4.1. FASE 1 – Boot inicial

muplugins_loaded

Plugins obrigatórios (must-use) carregados.

plugins_loaded

Todos os plugins foram carregados. Ótimo lugar para inicializar plugins.

sanitize_comment_cookies

Nome feio, mas é apenas um pré-processamento de cookies.

4.2. FASE 2 – Configuração do tema

after_setup_theme

Momento ideal para registrar menus, suportes de tema, thumbnails etc.

init

O hook mais popular. Use para:

  • registrar CPTs
  • registrar taxonomias
  • iniciar sessões
  • registrar shortcodes

Não use para enfileirar scripts.

4.3. FASE 3 – Query e rota

wp_loaded

WordPress totalmente carregado.

parse_request

Identificação do tipo de conteúdo solicitado.

parse_query

WordPress entende o que deve buscar.

pre_get_posts

Momento sublime para modificar a query principal.


4.4. FASE 4 – Enfileirar scripts e estilos

wp_enqueue_scripts

Frontend. CSS e JS moram aqui.

admin_enqueue_scripts

Painel administrativo.

login_enqueue_scripts

Tela de login.


4.5. FASE 5 – Renderização do tema

template_redirect

Você pode fazer redirecionamentos seguros aqui.

get_header

Antes de carregar header.php.

Bendito seja o <head>.

Lugar ideal para meta tags, scripts inline etc.

the_post

Chamado toda vez que um post entra no loop.

loop_start

O loop vai começar.

loop_end

O loop terminou. Hora de dizer adeus.

Momento perfeito para scripts no final da página.


5. COMO DESCOBRIR O HOOK CERTO?

Um bom desenvolvedor WP se guia por três instintos:

1. “O que quero fazer acontece quando?”

Se é antes de imprimir HTML → hooks iniciais Se é ao carregar scripts → wp_enqueue_scripts Se é durante o loop → the_post Se é no header → wp_head Se é no footer → wp_footer

Simples e elegante como um café forte.

2. Ler a documentação oficial

Busque por “WordPress Hook Reference”.

3. Examinar o código do core

O WP é open source. Você pode literalmente procurar:

do_action('nome_do_hook');
apply_filters('nome_do_filtro');

E descobrir onde aquilo acontece.


6. LISTA ORGANIZADA DOS HOOKS MAIS ÚTEIS DO WORDPRESS

Aqui está a “santíssima lista” dos hooks que realmente importam no dia a dia.

Hooks centrais (estrutura)

  • plugins_loaded
  • after_setup_theme
  • init
  • wp_loaded

Scripts e estilos

  • wp_enqueue_scripts
  • admin_enqueue_scripts
  • login_enqueue_scripts

Tema e renderização

  • get_header
  • wp_head
  • wp_footer
  • get_footer

Query e posts

  • pre_get_posts
  • the_post
  • loop_start
  • loop_end

Admin

  • admin_menu
  • admin_init

Comentários

  • comment_form_before
  • comment_form_after

Login

  • login_init
  • login_enqueue_scripts

7. FILTROS MAIS IMPORTANTES DO WORDPRESS

Conteúdo

  • the_content
  • the_title
  • the_excerpt
  • post_type_link
  • term_link
  • home_url

Scripts e assets

  • script_loader_tag
  • style_loader_tag

Usuários

  • authenticate
  • login_redirect

WooCommerce (se você encarar esse dragão)

  • woocommerce_before_single_product
  • woocommerce_cart_item_price
  • woocommerce_checkout_fields

8. COMO FUNÇÕES COM HOOKS SÃO EXECUTADAS?

Quando você registra um hook:

  1. O WordPress coloca sua função em uma fila associada ao nome do hook.

  2. Quando chega o momento do_action('nome'), ele:

    • procura quem está na fila
    • executa tudo na ordem

Prioridades menores rodam primeiro:

add_action('init', 'A', 1);
add_action('init', 'B', 5);
add_action('init', 'C', 999);

A ordem será: A → B → C.


9. BOAS PRÁTICAS DE HOOKS

  1. Use prefixos nos nomes das funções.
  2. Não coloque lógica pesada dentro de hooks que rodam muitas vezes.
  3. Sempre retorne valores em filtros.
  4. Não invente moda colocando scripts fora do hook correto.
  5. Evite prioridades absurdas (tipo 10000). Se chegou nesse ponto, talvez haja um problema maior.