Módulo 3: Trabalhando com Hooks no WordPress

O WordPress possui uma arquitetura flexível que permite aos desenvolvedores adicionar ou modificar funcionalidades sem alterar o core do sistema. Essa flexibilidade é proporcionada pelos Hooks, um dos conceitos fundamentais do desenvolvimento de plugins. Neste artigo, abordaremos:

  • O que são Hooks, Actions e Filters;
  • Como usar Actions para adicionar funcionalidades;
  • Como usar Filters para modificar conteúdos existentes;
  • Exemplos práticos.

O que são Hooks, Actions e Filters?

Hooks

Hooks são pontos estratégicos no ciclo de execução do WordPress onde você pode “engatar” seu código para adicionar, modificar ou substituir funcionalidades. Existem dois tipos principais:

  1. Actions: Permitem executar uma função personalizada em um ponto específico do ciclo de execução.
  2. Filters: Permitem modificar dados antes que eles sejam exibidos ou salvos.

Actions

Actions permitem adicionar novas funcionalidades ao WordPress. Elas são executadas em momentos específicos do ciclo de vida da aplicação, como ao carregar o rodapé de uma página ou ao salvar um post.

Exemplo Prático: Adicionar uma Mensagem no Rodapé

Usamos a função add_action para “enganchar” uma função personalizada ao hook wp_footer, responsável por carregar o rodapé do site. O código a seguir, já presente no nosso plugin meu-plugin.php, demonstra isso:

// Função para exibir mensagem no rodapé
function meu_plugin_mensagem_rodape() {
    echo '<p style="text-align: center;">Obrigado por visitar nosso site! - Meu Primeiro Plugin</p>';
}
add_action( 'wp_footer', 'meu_plugin_mensagem_rodape' );

Quando o WordPress executa o hook wp_footer, nossa mensagem personalizada é exibida no rodapé.


Filters

Filters são usados para modificar dados antes que eles sejam processados ou exibidos pelo WordPress. Eles permitem que você altere conteúdo dinâmico sem precisar alterar diretamente o código de origem.

Exemplo Prático: Personalizar o Título de Posts

Vamos usar o hook the_title, que é acionado antes de exibir o título de um post, para adicionar um prefixo aos títulos do site:

// Função para personalizar o título dos posts
function meu_plugin_personalizar_titulo( $titulo ) {
    // Adiciona o prefixo "[Especial]" ao título
    return '[Especial] ' . $titulo;
}
add_filter( 'the_title', 'meu_plugin_personalizar_titulo' );

Neste código:

  • A função meu_plugin_personalizar_titulo recebe o título original como parâmetro;
  • O título é modificado para incluir o prefixo “[Especial]”;
  • O hook add_filter garante que essa função seja chamada sempre que um título for exibido.

Conclusão

Os Hooks são uma ferramenta poderosa para personalizar e estender funcionalidades do WordPress. Com Actions, podemos adicionar novas funcionalidades em pontos estratégicos, enquanto com Filters, podemos modificar conteúdos existentes sem alterar diretamente o núcleo do WordPress.

Pratique criando novas Actions e Filters no seu plugin e veja como é possível transformar seu site WordPress de forma criativa e eficiente. No próximo módulo, exploraremos como criar Shortcodes para ainda mais flexibilidade!

Veja como ficou nossa página depois que adicionamos o Filters

A palavra [Especial] foi adicionada em todos os títulos das postagens

Código todo da aplicação:

<?php
/*
Plugin Name: Meu Primeiro Plugin
Description: Um simples plugin para aprender a criar plugins no WordPress.
Version: 1.0
Author: Seu Nome
*/

if ( !defined( 'ABSPATH' ) ) {
    exit; // Proteção contra acesso direto
}

// Função para exibir mensagem no rodapé
function meu_plugin_mensagem_rodape() {
    echo '<p style="text-align: center;">Obrigado por visitar nosso site! - Meu Primeiro Plugin</p>';
}

add_action( 'wp_footer', 'meu_plugin_mensagem_rodape' );

// Função para personalizar o título dos posts
function meu_plugin_personalizar_titulo( $titulo ) {
    // Adiciona o prefixo "[Especial]" ao título
    return '[Especial] ' . $titulo;
}
add_filter( 'the_title', 'meu_plugin_personalizar_titulo' );

?>