Blog

Hooks: ações e filtros no WordPress

básico / hooks

Hooks: ações e filtros no WordPress

Neste artigo vamos descobrir o que são hooks, filters e actions no WordPress. Os hooks são a base do WordPress. São ganchos vinculados em algumas partes do conteúdo do site. O WordPress todo é realizado com funcionamento dos hooks. Os hooks apresentam as partes de conteúdo do site e podem ser manipulados com funções: apply_filter, add_filter, do_action e add_action. O objetivo principal é deixar as funcionalidades mesmo após a atualização do WordPress, ou plugin, ou tema no mesmo lugar.

Qual é a diferença entre filters e actions no WordPress?

Os filtros nós usamos para alterar o valor de alguma variável que está vinculada no hook
As ações nós usamos para adicionar uma nova função dentro do conteúdo do hook.

Vamos criar o próprio hook-filter!

Nós vamos usar duas funções do WordPress apply_filters() e add_filter().

 $my_var = apply_filters('my_own_filter', $my_var);

Isso foi um exemplo muito simples, mas acho que deu para entender a ideia.

Vamos ver agora um exemplo do action-hook.

A função do hook-ação é adicionar alguma nova funcionalidade na parte do código onde ele foi criado.

Da mesma forma precisamos primeiramente criar o hook, neste caso vamos usar a função do WordPress do_action()

do_action('my_own_action');

Basta colocar só o nome da ação dentro dos parênteses para cria-la.

Agora, vamos definir uma nova funcionalidade que vai ser adicionada neste hook.

function my_function_that_returns_post_1() {

 return get_post(0)->post_content;

 }

 add_action('my_own_action', 'my_function_that_returns_post_1');

Não é fácil?

Agora vamos ver sobre as prioridades.

Como num hook podemos adicionar várias ações, é bem já definir as prioridades de execução delas.

Os filters e actions, como terceiro parâmetro recebem a prioridade de execução. Quando menor o número, mais rápido a ação será executada. A prioridade padrão é igual a 10.

Um simples exemplo:

add_action('my_action_priority', function() { echo 'WordPress'; }, 199);

 add_action('my_action_priority', function() { echo 'Eu '; }, 5);

 add_action('my_action_priority', function() { echo 'amo ';}, 10);

 do_action('my_action_priorit');

 // Vai aparecer na tela a frase 'Eu amo WordPress 

Removendo os hooks

Qualquer action ou filter definido numa parte do código, pode ser removido com funções:

remove_filter() — remover um certo filter
remove_action() — remover uma certa ação do hook
remove_all_filters() — remover todos os filters do hook
remove_all_actions() — remover todas as ações do hook

Assim, por exemplo, quando precisamos mudar a página dos produtos no Woocommerce, precisamos remover todas as ações e depois começar adicionar elas uma depois da outra.

Como saber quais hooks tem na página

O que eu sempre uso é o plugin Simply Show Hooks Ele mostra todos os hooks que estão criando a página junto com prioridades deles.

Deixe seu comentário aqui

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *