Activer les liens parents dans une catégorie

Résolu/Fermé
Signaler
-
 Kaz -
Bonjour,
Mon menu marche correctement sous Wordpress 4. Le logo change selon la section, et le bouton permettant d'y accéder reste en position :hover.
J'ai toutefois un problème: si je vais à l'intérieur de la catégorie, dans une page concernant une image comme celles-ci : ici
Tout redevient à la normale. Le logo est celui de base et plus aucun bouton n'est en position :hover.

Pour les images, j'avais ce code à ma disposition :

<?php
$catCouranteID = get_cat_ID(single_cat_title('', false)); // récupère l'ID de la catégorie courante
if (catCouranteID) {
    echo '<style>.current-menu-item { background-image: url('.get_bloginfo('template_url').'/images/cat-'.$catCouranteID.'.png); }</style>';
}
?>


J'ai tenté de le retourner dans tous les sens en jouant avec les classes .current-post-ancestor,.current-post-ancestor a, .current-menu-parent, .current-menu-parent a, .current-post-parent, .current-post-parent a, tout en essayant de récupérer dynamiquement la catégorie parente grâce au codex Wordpress, mais je ne m'en sors pas.

Quelqu'un pourrait-il m'aider s'il vous plait ?

En vous remerciant par avance :)

4 réponses

Messages postés
5840
Date d'inscription
mercredi 30 octobre 2013
Statut
Membre
Dernière intervention
17 mars 2021
1 288
tu pourrais faire plus simple juste en utilisant les marqueurs conditionnels puisque tu sais quelle image hover correspond a quelle catégorie, pas besoin de récupérer l'id

il suffit d'utiliser une variable dans ta div qui contient le logo
tadiv id="<?php echo $log;?>

ensuite tu mets les marqueurs conditionnel en fonction de ce que tu souhaites (ici les catégories)

<?php if(is_category('2') ):
$log=logofootball;
elseif (is_category('3') ):
$log=logorugby;
else :
$bg=ici id de la div contenant ton logo actuellement;
endif; ?>

Il ne te reste plus qu'a ajouter les css correspondantes (evidemmenten fonction de ton code actuel)

#logofootball{ 
background-image: url(images/logoffotball.jpg);
background-repeat:no-repeat;
background-attachment:fixed;
background-position:left bottom;
}
#logorugby{
background-image: url(images/logorugby.jpg);
background-repeat:no-repeat;
background-attachment:fixed;
background-position:left bottom;
}

ainsi chaque catégorie affichera l'image qui la symbolise, si c'est aucune des catégorie ayant son propre logo, c'est le logo par défaut qui s'affichera
Merci beaucoup, je vais tester ça :)
Je n'arrive pas du tout à faire fonctionner le code... sûrement dû à la structure de mon thème...
Messages postés
5840
Date d'inscription
mercredi 30 octobre 2013
Statut
Membre
Dernière intervention
17 mars 2021
1 288
le principe fonctionne normalement sur tous les thèmes par contre il faut évidemment l'adapter à la structure mais dans la plupart des thèmes, il faut mettre le code php dans le fichier header.php avant la div contenant ton logo