Lá no site mostra uma taxonomy só sendo utilizada e eu subentendi que seria só colocar outras taxonomies.
Então fiz isso
functions.php
<?php
$existeBusca = array_key_exists('taxonomy', $_GET);
if($existeBusca && $_GET['taxonomy'] === '' ){
wp_redirect( home_url() );
}
require_once('header.php');
?>
<main class="home-main">
<div class="container">
<?php $generos = get_terms('genero'); ?>
<?php $temporadas = get_terms('temporada'); ?>
<?php $anos = get_terms('ano'); ?>
<br/>
<form action="<?= bloginfo('url') ?>">
<div class="row">
<div class="form-group col-md-3">
<select class="form-control" name="genero">
<option value="">Todos os Gêneros </option>
<option value="" disabled="disabled">--------------</option>
<?php foreach ($generos as $genero){ ?>
<option value="<?= $genero->slug ?>"><?= $genero->name; ?></option>
<?php } ?>
</select>
</div>
<div class="col-md-3">
<select class="form-control" name="temporada">
<option value="">Todas as Temporadas </option>
<option value="" disabled="disabled">--------------</option>
<?php foreach ($temporadas as $temporada){ ?>
<option value="<?= $temporada->slug ?>"><?= $temporada->name; ?></option>
<?php } ?>
</select>
</div>
<div class="col-md-2">
<select class="form-control" name="ano">
<option value="">Todos os Anos </option>
<option value="" disabled="disabled">--------------</option>
<?php foreach ($anos as $ano){ ?>
<option value="<?= $ano->slug ?>"><?= $ano->name; ?></option>
<?php } ?>
</select>
</div>
<div class="form-group">
<button type="submit" class="btn btn-default">Buscar</button>
</div>
</div>
</form>
<?php
if($existeBusca){
$taxQuery = array(
array(
'taxonomy' => 'taxonomy',
'field' => 'slug',
'terms' => $_GET['genero']
)
);
}
$args = array(
'post_type' => 'projeto',
'tax_query' => $taxQuery
);
$loop = new WP_Query( $args );
if( $loop->have_posts() ) { ?>
<ul class="imoveis-listagem">
<?php while( $loop->have_posts() ) {
$loop->the_post(); ?>
<li class="imoveis-listagem-item">
<a href="<?= the_permalink(); ?>">
<?php the_post_thumbnail(); ?>
<h2><?php the_title(); ?></h2>
<p><?php the_content(); ?></p>
</a>
</li>
<?php } ?>
</ul>
<?php } ?>
</div>
</main>
<?php get_footer(); ?>
e na function.php adicionais mais taxonomias:
//Taxonomia
$nomeSingular = 'Gênero';
$nomePlural = 'Gêneros';
$labels = array(
'name' => $nomeSingular,
'singular_name' => $nomePlural,
'edit_item' => 'Editar '. $nomeSingular,
'add_new_item' => 'Adicionar nome '. $nomeSingular
);
$args = array(
'labels' => $labels,
'public' => true,
'hierarchical' => true
);
register_taxonomy('genero','projeto',$args);
//Taxonomia
$nomeSingular = 'Ano';
$nomePlural = 'Anos';
$labels = array(
'name' => $nomeSingular,
'singular_name' => $nomePlural,
'edit_item' => 'Editar '. $nomeSingular,
'add_new_item' => 'Adicionar nome '. $nomeSingular
);
$args = array(
'labels' => $labels,
'public' => true,
'hierarchical' => true
);
register_taxonomy('ano','projeto',$args);
//Taxonomia
$nomeSingular = 'Temporada';
$nomePlural = 'Temporadas';
$labels = array(
'name' => $nomeSingular,
'singular_name' => $nomePlural,
'edit_item' => 'Editar '. $nomeSingular,
'add_new_item' => 'Adicionar nome '. $nomeSingular
);
$args = array(
'labels' => $labels,
'public' => true,
'hierarchical' => true
);
register_taxonomy('temporada','projeto',$args);
O problema é que quando eu seleciono só 1 taxonomy no lugar de aparecer na url só
http://localhost/wordpress/project/?genero=fantasia
ele aparece
http://localhost/wordpress/projetoAnime/genero/fantasia/?temporada&ano
Alguém pode me ajudar?
PS: Primeira pergunta minha queria ter uma avaliação se ela foi bem feita e o que eu posso mudar se fosse faze-las num guj ou stack overflow, obrigado.