Aprenda a personalizar e estender funcionalidades do WordPress com hooks, filters e actions de forma prática e eficaz.
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.
Actions permitem executar código em pontos específicos do ciclo de vida do WordPress. São usadas para adicionar funcionalidades.
Filters permitem modificar dados antes que sejam exibidos ou processados. São usados para alterar comportamentos existentes.
Shortcodes são atalhos especiais que permitem criar conteúdo dinâmico de forma simples no editor.
Template tags permitem modificar templates e adicionar funcionalidades específicas a temas.
Conheça as actions mais importantes e como usá-las para personalizar seu WordPress.
Executada quando o WordPress carrega todos os plugins, themes e funções principais.
add_action('init', function() {
// Código aqui
});
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');
});
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);
Executada na seção <head> do HTML, antes de fechar a tag.
add_action('wp_head', function() {
echo '';
});
Filters permitem modificar dados existentes sem alterar o comportamento original.
Modifica o conteúdo principal do post antes de ser exibido.
add_filter('the_content', function($content) {
return $content . 'Content added';
});
Modifica o título do post antes de ser exibido.
add_filter('the_title', function($title) {
return $title . ' - Suffix';
});
Controla o tamanho do excerpt (resumo) dos posts.
add_filter('excerpt_length', function($length) {
return 50; // 50 caracteres
});
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);
Veja exemplos reais de como usar hooks para personalizar WordPress.
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');
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');
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');
Adicionar "Leia mais" ao final dos resumos:
add_filter('get_the_excerpt', function($excerpt) {
if (empty($excerpt)) {
return '';
}
return $excerpt . ' Leia mais...';
});
Siga estas práticas para usar hooks de forma eficiente e segura.
Defina prioridades corretas (1-10) para suas actions e filters. Prioridade 1 executa primeiro.
Antes de usar um hook, verifique se ele existe na versão atual do WordPress.
Evite conflitos usando namespaces únicos para suas funções.
Teste seus hooks em diferentes cenários para garantir que funcionem corretamente.
Comente seus hooks para que outros desenvolvedores entendam o que fazem.
Use condições (if statements) dentro de hooks para evitar execução desnecessária.
Remova hooks que não são mais usados para manter o código limpo.
Use plugins como Query Monitor ou Debug Bar para analisar hooks.
Precisa de ajuda com desenvolvimento WordPress customizado? Oferecemos consultoria especializada.
Criamos funcionalidades personalizadas usando hooks, filters e actions.
Otimizamos seu código PHP para melhor performance e velocidade.
Capacite sua equipe a desenvolver com hooks WordPress de forma independente.
Precisa de alojamento otimizado para desenvolvimento PHP? Veja a 1000Megabytes com suporte PHP.
Para desenvolvimento de plugins WordPress e soluções customizadas, consulte a Velocitas Code.
Para criação de sites com desenvolvimento customizado, confira a 1000Sites.
Entre em contacto e vamos conversar sobre o seu projeto.