Hooks WordPress

Os Hooks são certas funções e identificadores que servem como ganchos (dada sua nomenclatura) para execução de instruções personalizadas. Significa dizer que através do uso dos hooks é possível informar ao sistema quando e como ele deve chamar determinada função.

Existem dois tipos de ganchos oferecidos pelo WordPress: Actions e Filters.

Filters Hooks

Os Filters, são os filtros da informação; através de suas aplicações o desenvolvedor consegue modificar ou como o próprio nome diz, filtrar os dados enviados pelo usuário ou resgatados do banco de dados antes que estes sejam exibidos ou armazenados. Veja o exemplo abaixo que modifica a tag “wp_title” para gerar o título da página de acordo com o que esta sendo visualizado:

function my_wp_title( $title, $sep ) {

global $page, $paged;

if ( is_feed() )
  return $title;

// adiciona o nome do blog
$title .= get_bloginfo( 'name' );

// adiciona descrição do blog na home
$site_description = get_bloginfo( 'description', 'display' );
if ( $site_description && ( is_home() || is_front_page() ) ) {
  $title .= " $sep $site_description";
}

// adiciona o número da página se necessário
if ( $paged >= 2 || $page >= 2 ) {
  $title .= " $sep " . sprintf( __( 'Page %s', '_s' ), max( $paged, $page ) );
}

return $title;
}

/*
 * add_filter aceita até 4 parâmetros:
 *
 * 1. Tag do WordPress a ser modificada
 * 2. Função callback que modifica o resultado gerado pela tag WP
 * 3. Prioridade (1-10)
 * 4. # de parâmetros da função callback
 */
add_filter( 'wp_title', 'my_wp_title', 10, 2 );

Action Hooks

As Actions, são ações executadas em determinados momentos pelo sistema; são atividades executadas mediante o disparar de um evento, como por exemplo o publicar de um post. No exemplo abaixo, registramos uma função que envia um email de notificação para o administrador do site toda vez que um comentário é deixado em seu blog:

function new_comment_notification() {
  $email = get_bloginfo("admin_email");
  wp_mail($email, "Novo Comentário", "Tem um novo comentário no seu blog.");
}

/*
 * add_action aceita até 4 parâmetros:
 *
 * 1. Nome do evento
 * 2. Função callback para executar quando o evento acontece
 * 3. Prioridade (1-10)
 * 4. # de parâmetros da função callback
 */
add_action("comment-post","new_comment_notification");

Para mais informações sobre WordPress Hooks, visite WordPress Plugin API.

Motivos para utilização dos Hooks

Em alguns casos quando se faz necessário alterar o modo de funcionamento do WordPress, é comum desenvolvedores realizarem tais alterações diretamente no código-fonte do CMS. No entanto essa prática é pouco recomendada, pois assim que o sistema for atualizado é bem provável que as alterações se percam e tenham que ser realizadas novamente. Usar os ganchos do WordPress é um jeito seguro de alterar o comportamento e as atividades executadas pela ferramenta.

A própria programação do sistema é realizada em grande parte com base nos Hooks. Veja por exemplo a utilização das Include Tags que se baseiam nesse princípio, assim como a incorporação de scripts ao WordPress que ocorre em razão do uso de ganchos.

 

Fontes: Leocristofani, Meucodex