Bonjour la communauté.
J'utilise un système de tri pour mes articles selon leurs catégories sur mon site wordpress.
Pour cela je liste mes catégories dans un "menu"
1 2 3 4 5 6 7
| <ul id="filtre">
<li class="filtre-actif"><a class="boutonfiltre" href="#">Tous</a></li>
<?php $types = get_terms("types");
foreach ($types as $d) { ?>
<li><a href="#" class="boutonfiltre"><?php echo $d->name; ?></a></li>
<?php } ?>
</ul> |
Une fonction dans mon fichier js masque les articles ne faisant pas partie de la catégorie que je choisi dans le menu.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| $('#filtre li a').click(function() {
$('#filtre li').removeClass('filtre-actif');
$(this).parent().addClass('filtre-actif');
var valeurFiltre = $(this).text().toLowerCase();
$('.cinq').hide();
if (valeurFiltre == 'tous') {
$('.cinq').show('fast');
}
else {
$('.cinq').each(function() {
if(!$(this).hasClass(valeurFiltre)) {
$(this).hide('fast');
} else {
$(this).show('fast');
}
});
}
return false;
}); |
Et pour que le filtre sache quoi masquer, je rajoute par php le nom de ma catégorie à la "class" de mon contenant.
1 2 3 4 5 6
| <?php $terms = get_the_terms( $post->id, 'types');
$terms_name = array();
foreach ($terms as $term) {$terms_name[] = $term->name;} ?>
<div class="cinq <?php echo $term->name; ?>">
</div> |
Cela fonctionne bien à partir du moment ou l'article est classé dans une catégorie utilisant un seul mot .
Par exemple si mes articles sont classé dans des catégories du style : Viandes, Poissons, ...
Tout va bien. Si je clique sur Viandes cela m'affichera tous mes articles classés dans Viandes.
Malheureusement, j'ai aussi des noms de catégories qui utilisent plusieurs mots. Par exemple : Jus de fruits
La, mon filtre ne reconnais pas la catégorie et n'affiche rien. (sans doute à cause des espaces entre les mots)
Cela fonctionne si, à la place de "name" je met "slug" dans le menu et dans la class de mes articles.
<?php echo $term->slug; ?>
Mais du coup mon menu n'affiche pas Jus de fruit mais jus-de-fruit. Normal c'est la forme du slug.
En soit ce n'est pas très gênant mais je préférerais quand même afficher Jus de fruit
Comment puis je faire cela ?
Merci pour votre aide.
++ Dgé
Partager