Claro Wanderson! Eu usei o mesmo conceito da aula para criar esse código abaixo:
<?php
if( have_posts() ) {
while( have_posts() ) {
the_post();
?>
<div class="row">
<div class="col-md-12">
<?php the_content(); ?>
<hr>
</div>
</div>
<?php
}
}
?>
<?php
$queryTaxonomy = array_key_exists('categoria', $_GET);
?>
<?php $taxonomias = get_terms('categorias'); ?>
<form class="form-fornecedores" action="<?= bloginfo('url'); ?>/fornecedores">
<div class="fornecedores-filtro-botao-container">
<?php foreach($taxonomias as $taxonomia) { ?>
<button class="fornecedores-filtro-botao" name="categoria" type="submit" value="<?= $taxonomia->slug; ?>">
<strong class="text-align"><?= $taxonomia->name; ?></strong>
</button>
<?php } ?>
</div>
</form>
<div class="fornecedores-filtro-img-container">
<?php
if($queryTaxonomy) {
$filtrar = array(
array(
'taxonomy' => 'categorias',
'field' => 'slug',
'terms' => $_GET['categoria']
)
);
}
$args = array(
'post_type' => 'fornecedores',
'tax_query' => $filtrar
);
$loop = new WP_Query( $args );
if( $loop->have_posts() ) { ?>
<?php while( $loop->have_posts() ) {
$loop->the_post();
?>
<div class="fornecedores-filtro-img">
<?php the_post_thumbnail(); ?>
</div>
<?php
}
}
?>
</div>
Quando eu clico no botão com classe "fornecedores-filtro-botao", ele faz o filtro corretamente, mas ele joga a página para cima, que é o comportamento padrão do submit. Eu vi algo na net que a solução para isso não acontecer era fazer uma requisição ajax para o db do wp, ai a página ficaria "parada" enquanto ele faz a requisição.
Se o ajax for a única forma, há um jeito de usar as funções prontas do wp para fazer isso? Ou tem que fazer na mão porque elas não existem no wp?