Activer les liens parents dans une catégorie

Résolu
Kaz -  
 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

  1. elgazar Messages postés 5776 Date d'inscription   Statut Membre Dernière intervention   1 330
     
    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
    0
    1. Kaz
       
      Merci beaucoup, je vais tester ça :)
      0
  2. Kaz
     
    Je n'arrive pas du tout à faire fonctionner le code... sûrement dû à la structure de mon thème...
    0
  3. elgazar Messages postés 5776 Date d'inscription   Statut Membre Dernière intervention   1 330
     
    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
    0