WordPress

Entendendo e utilizando filters ( Filtros ) no WordPress

4.7/5 - (3 votes)

Um dos grandes atrativos em adotar o WordPress é possibilidade de customizar  informações ou execução de ações sem precisar mexer no código que você definiu, oferecendo uma liberdade para quem for utilizá-lo, implementando assim suas opções.

Muitas vezes você precisa definir valores padrões e que possam ser personalizados como valores de atributos e textos em partes do seu tema ou plugin.

Um recurso bem interessante do WordPress são os filters, que permitem que você consiga definir valores que podem ser alterados.

Eles são semelhantes aos actions (ganchos), mas a diferença entre os dois é que as actions servem para executar ações personalizadas e os filters para alterar valores predefinidos. Se deseja aprender mais sobre as actions, você pode ler este artigo aqui do blog.

Para definir um filter, você  utilizará função apply_filters. Você definirá o nome do filtro a ser chamado, o valor padrão, e parâmetros opcionais.

apply_filters(NOME_DO_FILTRO, VALOR_PADRÃO);

E para utilizar o filter (filtro), você utilizará a função add_filter. Você definirá em qual filtro você irá executar a função, o nome da função, a prioridade de execução (opcional) e quantidade de parâmetros que terá essa função (opcional).

add_filter(NOME_DO_FILTRO, NOME_DA_FUNÇÃO);

Veremos na prática

Você está criando um tema voltado para catalogo online. Nesse catalogo, você define um link onde informa um texto ” Veja o produto”.

<a href="<?php the_permalink()?>">Veja o Produto</a>

Você quer dar opção pra quem for usar o tema como tema filho, por exemplo, para que o usuário possa alterar esse texto, – pois a pessoa pode utilizar de outra forma.  Ao invés de Veja o produto, “Veja o Catalogo” ou até mesmo outros nomes.

Então, vamos criar filtro em cima de disso.

<a href="<?php the_permalink()?>"><?php echo apply_filters ('the_link_catalog' , 'Veja o Produto' )?></a>

Pronto, aplicamos o filtro, demos o nome dele de the_link_catalog, e definimos um valor padrão, que é “Veja o Produto”.

Para realizar essa alteração, basta adicionar no functions.php do tema filho, o add_filter.

function custom_filter_catalog($string){
   return 'Veja mais';
}

add_filter('the_link_catalog', 'custom_filter_catalog');

Criamos uma função onde retornamos o nome que desejamos que seja impresso e depois no add_filter informando em qual filtro queremos aplicar a função e o nome da função que será chamada.

Vamos agora pensar que ao invés de apenas dar opção do cliente mudar o texto do link, mas também mudar o link inteiro. Mas pra isso precisamos passar mais informações, como por exemplo saber o post que pertence aquele link.

<?php echo apply_filters('the_link_catalog', '<a href="'.get_permalink().'>Veja produto</a>', get_the_ID()); ?>

Fizemos da mesma forma, só que agora o valor padrão é o próprio link e passamos o ID do post como opção, caso deseja saber de quem aquele link pertence.

Agora, no tema filho, quero ao invés de mostrar “Veja Produto”, mostrar o nome do produto e adicionar uma classe css pra identificar e criar uma personalização a mais desse tema filho.

function custom_filter_catalog($html, $post_id){
	return '<a href="'.get_permalink($post_id).' class="btn-action btn-'.$post_id.'">get_the_title($post_id)</a>';
}

add_filter('the_link_catalog', 'custom_filter_catalog', 10, 2);

Criamos uma função e passamos dois parâmetros: um que seria para o link e outro que seria pra o id do post.  Dentro da função, como o id do post, refizemos o link passando para onde será redirecionado e no nome do post adicionamos classes como atributo para o link.

Depois usamos o add_filter passando o nome do filtro que queremos usar e depois a função que tem modificação. Passamos ainda a ordem de prioridade que será chamada a função e quantidade de parâmetros que ela tem.

Dessa forma você consegue dar mais opções para quem for utilizar seus temas e plugins.

Espero que tenham gostado.

Um abraço e até a próxima.

 

David CHC

Trabalha com desenvolvimento web há 10 anos, atuou como programador líder do MX Cursos por mais de 8 anos e hoje dedica-se exclusivamente à criação de cursos para a plataforma. Possui vasto conhecimento em PHP, Javascript, HTML5, CSS3, Gulp.js, GIT, MySQL

Posts recentes

O Futuro da Criação de Sites: Integração de IA e Design Gráfico

Nos últimos anos, testemunhamos uma revolução na forma como os sites são criados, impulsionada pelo…

1 mês atrás

Como a IA Está Revolucionando a Animação 3D

A animação 3D tem sido uma forma poderosa de contar histórias e criar experiências visuais…

1 mês atrás

Lista das 20 Melhores Inteligências Artificiais em 2024 para Criação de Imagens (Todas Gratuitas)

Nos últimos anos, a inteligência artificial (IA) tem revolucionado a forma como criamos e editamos…

1 mês atrás

O Papel da Inteligência Artificial na Criação de Sites com WordPress

Nos últimos anos, a integração da inteligência artificial (IA) na criação de sites tem revolucionado…

1 mês atrás

5 Tendências em Edição de Vídeo Impulsionadas pela Inteligência Artificial

Nos últimos anos, a edição de vídeo evoluiu rapidamente com o avanço da tecnologia, e…

1 mês atrás

O Papel Revolucionário da Inteligência Artificial na Dublagem de Filmes

A dublagem de filmes desempenha um papel fundamental na indústria cinematográfica, permitindo que obras de…

1 mês atrás

This website uses cookies.