PHP para WordPress: Hooks, Filters e Actions

Aprenda a personalizar e estender funcionalidades do WordPress com hooks, filters e actions de forma prática e eficaz.

✅ Desenvolvimento avançado
✅ Personalização completa
✅ Código otimizado
✅ Funcionalidades custom
PHP WordPress

O Sistema de Hooks do WordPress

O WordPress usa um sistema de hooks (ganchos) que permite modificar ou estender funcionalidades sem alterar o código core. Isso torna o WordPress extremamente flexível e personalizável.

2.000+
hooks disponíveis no WordPress
50K+
plugins usam hooks
100%
customizável com hooks

Tipos de Hooks WordPress

🔗

Actions (Ações)

Actions permitem executar código em pontos específicos do ciclo de vida do WordPress. São usadas para adicionar funcionalidades.

  • add_action('init', 'my_function')
  • add_action('wp_head', 'my_meta_tags')
  • add_action('save_post', 'my_save_handler')
  • add_action('wp_enqueue_scripts', 'my_scripts')
🔍

Filters (Filtros)

Filters permitem modificar dados antes que sejam exibidos ou processados. São usados para alterar comportamentos existentes.

  • add_filter('the_title', 'my_title_filter')
  • add_filter('the_content', 'my_content_filter')
  • add_filter('wp_nav_menu_items', 'my_menu_filter')
  • add_filter('excerpt_length', 'my_excerpt_length')

Shortcodes

Shortcodes são atalhos especiais que permitem criar conteúdo dinâmico de forma simples no editor.

  • add_shortcode('gallery', 'my_gallery_shortcode')
  • add_shortcode('button', 'my_button_shortcode')
  • add_shortcode('contact_form', 'my_contact_shortcode')
  • add_shortcode('recent_posts', 'my_recent_posts')
🎨

Template Tags

Template tags permitem modificar templates e adicionar funcionalidades específicas a temas.

  • add_action('wp_head', 'my_custom_header')
  • add_action('wp_footer', 'my_custom_footer')
  • add_action('template_redirect', 'my_template_redirect')
  • add_action('wp_enqueue_scripts', 'my_theme_scripts')

Actions WordPress Essenciais

Conheça as actions mais importantes e como usá-las para personalizar seu WordPress.

init

Alta Prioridade

Executada quando o WordPress carrega todos os plugins, themes e funções principais.

add_action('init', function() {
    // Código aqui
});
Usos: Inicializar custom post types, taxonomies, configurações globais.

wp_enqueue_scripts

Alta Prioridade

Usada para registrar e carregar scripts e styles no frontend.

add_action('wp_enqueue_scripts', function() {
    wp_enqueue_style('my-style', get_template_directory_uri() . '/style.css');
    wp_enqueue_script('my-script', get_template_directory_uri() . '/script.js');
});
Usos: Carregar CSS/JS personalizados, dependências de plugins.

save_post

Média Prioridade

Executada quando um post é salvo no banco de dados.

add_action('save_post', function($post_id, $post) {
    // Processar dados do post
    update_post_meta($post_id, 'custom_field', 'value');
}, 10, 2);
Usos: Salvar metadados, processar formulários, notificações.

wp_head

Média Prioridade

Executada na seção <head> do HTML, antes de fechar a tag.

add_action('wp_head', function() {
    echo '';
});
Usos: Adicionar meta tags, scripts no head, Open Graph.

Filters WordPress Essenciais

Filters permitem modificar dados existentes sem alterar o comportamento original.

the_content

Alta Prioridade

Modifica o conteúdo principal do post antes de ser exibido.

add_filter('the_content', function($content) {
    return $content . '
Content added
'; });
Usos: Adicionar conteúdo automático, modificar texto, inserir anúncios.

the_title

Alta Prioridade

Modifica o título do post antes de ser exibido.

add_filter('the_title', function($title) {
    return $title . ' - Suffix';
});
Usos: Adicionar sufixos, modificar títulos, SEO.

excerpt_length

Média Prioridade

Controla o tamanho do excerpt (resumo) dos posts.

add_filter('excerpt_length', function($length) {
    return 50; // 50 caracteres
});
Usos: Personalizar tamanho de resumos, layouts específicos.

wp_nav_menu_items

Média Prioridade

Modifica os itens do menu de navegação.

add_filter('wp_nav_menu_items', function($items, $args) {
    foreach ($items as $item) {
        $item->title = strtoupper($item->title);
    }
    return $items;
}, 10, 2);
Usos: Personalizar menus, adicionar classes, modificar links.

Exemplos Práticos de Hooks

Veja exemplos reais de como usar hooks para personalizar WordPress.

Custom Post Type

Action

Criar um custom post type para "Produtos":

function register_product_post_type() {
    register_post_type('produto', [
        'label' => 'Produtos',
        'public' => true,
        'has_archive' => true,
        'supports' => ['title', 'editor', 'thumbnail'],
        'menu_icon' => 'dashicons-cart'
    ]);
}
add_action('init', 'register_product_post_type');
Resultado: Custom post type "Produtos" disponível no admin.

Meta Box Personalizada

Action

Adicionar meta box para posts normais:

function add_custom_meta_box() {
    add_meta_box(
        'custom_meta_box',
        'Informações Adicionais',
        'Detalhes do post',
        'post',
        'normal',
        'high'
    );
}
add_action('add_meta_boxes', 'add_custom_meta_box');
Resultado: Meta box personalizada no editor de posts.

Shortcode Personalizado

Shortcode

Criar shortcode para botão de contato:

function contact_button_shortcode($atts) {
    $atts = shortcode_atts([
        'text' => 'Fale Conosco',
        'class' => 'btn btn-primary',
        'phone' => '+351 96 437 96 09'
    ], $atts);
    
    return '' . $atts['text'] . '';
}
add_shortcode('contact_button', 'contact_button_shortcode');
Resultado: Uso: [contact_button text="Ligar" phone="964379609"]

Modificar Excerpt

Filter

Adicionar "Leia mais" ao final dos resumos:

add_filter('get_the_excerpt', function($excerpt) {
    if (empty($excerpt)) {
        return '';
    }
    return $excerpt . ' Leia mais...';
});
Resultado: "Leia mais..." adicionado automaticamente.

Boas Práticas com Hooks WordPress

Siga estas práticas para usar hooks de forma eficiente e segura.

Use Prioridades Corretas

Defina prioridades corretas (1-10) para suas actions e filters. Prioridade 1 executa primeiro.

Dica: Use prioridade 1 para hooks críticos como init.

Verifique se o Hook Existe

Antes de usar um hook, verifique se ele existe na versão atual do WordPress.

Dica: Verifique no Codex WordPress antes de usar hooks.

Use Namespaces Únicos

Evite conflitos usando namespaces únicos para suas funções.

Dica: Prefixe suas funções: prefix_my_function()

Teste Thoroughly

Teste seus hooks em diferentes cenários para garantir que funcionem corretamente.

Dica: Use wp_debug_mode() durante desenvolvimento.

Documente seu Código

Comente seus hooks para que outros desenvolvedores entendam o que fazem.

Use Condições

Use condições (if statements) dentro de hooks para evitar execução desnecessária.

Dica: Verifique is_admin() ou is_single() quando necessário.

Remova Hooks Desnecessários

Remova hooks que não são mais usados para manter o código limpo.

Dica: Use remove_action() e remove_filter().

Use Plugins de Debug

Use plugins como Query Monitor ou Debug Bar para analisar hooks.

Consultoria PHP WordPress

Precisa de ajuda com desenvolvimento WordPress customizado? Oferecemos consultoria especializada.

🔧

Desenvolvimento Customizado

Criamos funcionalidades personalizadas usando hooks, filters e actions.

  • Custom post types
  • Meta boxes personalizadas
  • Shortcodes customizados
  • Integrações com APIs
A partir de €499
🔍

Otimização de Performance

Otimizamos seu código PHP para melhor performance e velocidade.

  • Análise de código
  • Otimização de queries
  • Cache personalizado
  • Performance profiling
  • Recomendações
A partir de €299
📚

Treinamento e Mentoria

Capacite sua equipe a desenvolver com hooks WordPress de forma independente.

  • Formação personalizada
  • Mentoria técnica
  • Workshops práticos
  • Documentação
  • Suporte contínuo
A partir de €199/mês

Pronto para criar o seu site?

Entre em contacto e vamos conversar sobre o seu projeto.