Filtros (filters)

Um filtro (filter) é uma função que pode ser conectada a um evento no WordPress (chamado ganchos, ou hook). Durante a execução quando o evento é acionado, o filtro é aplicado à saída de dados gerada pelo gancho de evento.

É importante lembrar que os filtros executam suas ações nos dados que recebem e os retornam antes de serem exibidos no navegador.

Os filtros sempre precisam ter dados entrando e saindo para garantir a saída dos dados no navegador (seu conteúdo pode ser passado por outros filtros antes de obter saída no navegador), fazendo assim um filtro já que recebem algo e podem retornar outra coisa diferente (ou até dados a mais). Em comparação, as ações, que são semelhantes aos filtros, não exigem que nada seja retornado, embora os dados também possam ser retornados por meio de ações.

Exemplo: digamos que queremos exibir um texto fixo após todas as postagens no blog. Nesse cenário, criamos uma função que verifica o conteúdo da postagem e adiciona algo logo após ela.

Em seguida, associamos essa função ao evento the_content (que é a função chamada para exibir o conteúdo que você escreveu em um post na página pública dele em seu site). Assim, sempre que o evento the_content ocorrer, nossa função será automaticamente acionada para filtrar a saída do evento the_content e adicionando o texto.

A função para adicionar o texto fixo seria como este exemplo abaixo:

function guga_text_after_content ($content) {
    $aftercontent = 'Texto fixo após o conteúdo da postagem';
    $fullcontent = $content . $aftercontent;
    
    return $fullcontent;
}

A função acima recebe o conteúdo do seu post pela variável $content, um texto fixo é recebido na variável $aftercontent e fazemos a função retornar a concatenação do conteúdo em $content com o texto de $aftercontent logo após dele.

Para este função ser chamada sempre que um post for exibido, criamos o filtro com a função add_filter e adicionamos a linha abaixo logo após o código acima, desta forma:

add_filter('the_content', 'guga_text_after_content');

A função add_filter basicamente passa a instrução: sempre que the_content for acionada, execute a função tpw_text_after_content.

Existem 3 formas indicadas para se adicionar uma função em seu tema:

  1. Se é um tema desenvolvido por você, adicione tal código no arquivo functions.php.
  2. Se não é um tema desenvolvido por você:
    1. Crie um tema filho e adicione o código no arquivo functions.php do tema filho
    2. Se não quiser/souber criar um tema filho, você pode usar um plugin como o Code Snippets para adicionar funções personalizadas em seu site.

As funções usadas para filtrar dados são chamadas de hooks (ganchos). Filtros e ações juntos permitem aos desenvolvedores uma grande flexibilidade para modificar eventos, filtros e ações padrão do WordPress. Os desenvolvedores também podem criar seus próprios filtros e ações personalizados para que outros desenvolvedores possam estender seus plugins ou temas.

Os filtros são diferentes de ações. As ações do WordPress são executadas em eventos como quando um tema ou plugin é ativado ou quando uma postagem é publicada. Os filtros são usados para filtrar a saída quando é enviada ao banco de dados ou ao navegador de um usuário.

Leitura adicional: