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.
wp_head
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.
wp_footer
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_loadedafter_setup_themeinitwp_loaded
Scripts e estilos
wp_enqueue_scriptsadmin_enqueue_scriptslogin_enqueue_scripts
Tema e renderização
get_headerwp_headwp_footerget_footer
Query e posts
pre_get_poststhe_postloop_startloop_end
Admin
admin_menuadmin_init
Comentários
comment_form_beforecomment_form_after
Login
login_initlogin_enqueue_scripts
7. FILTROS MAIS IMPORTANTES DO WORDPRESS
Conteúdo
the_contentthe_titlethe_excerpt
URL, links e permalinks
post_type_linkterm_linkhome_url
Scripts e assets
script_loader_tagstyle_loader_tag
Usuários
authenticatelogin_redirect
WooCommerce (se você encarar esse dragão)
woocommerce_before_single_productwoocommerce_cart_item_pricewoocommerce_checkout_fields
8. COMO FUNÇÕES COM HOOKS SÃO EXECUTADAS?
Quando você registra um hook:
-
O WordPress coloca sua função em uma fila associada ao nome do hook.
-
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
- Use prefixos nos nomes das funções.
- Não coloque lógica pesada dentro de hooks que rodam muitas vezes.
- Sempre retorne valores em filtros.
- Não invente moda colocando scripts fora do hook correto.
- Evite prioridades absurdas (tipo 10000). Se chegou nesse ponto, talvez haja um problema maior.