web-dev-qa-db-fra.com

ajout de balises .current * à des types d'articles et à des taxonomies personnalisés

TwentyTen ajoute des classes à des menus personnalisés, par exemple:

#access #menu-item-262.current-menu-item, #access #menu-item-262.current-menu-ancestor

Tous les liens de niveau supérieur de ma navigation principale ont la classe .current-menu-ancestor lorsque l'utilisateur se trouve sur une page enfant - , sauf lorsque le contenu personnalisé est affiché dans le type de publication que j'ai créé .

Comment définir la page actuelle dans la navigation lors de l'affichage d'un type d'article personnalisé?

Merci...

2
aendrew

Les classes ne sont pas ajoutées par le thème Twenty Ten, mais par le code de menu de navigation personnalisé commun, dans _wp_menu_item_classes_by_context() , qui est appelé depuis wp_nav_menu() .

Si vous souhaitez ajouter des classes supplémentaires, vous pouvez le faire soit en vous connectant au wp_nav_menu_objects , appelé une fois avec l’arborescence de menus complète, ou en nav_menu_css_class , appelé lors du rendu de chaque élément individuel.

2
Jan Fabry

Je compris cela alors que je tapais la réponse.

Si vous avez la ligne: <body <?php body_class(); ?>> dans votre header.php pour votre balise body, les modèles de publication personnalisés auront chacun leur propre classe de corps. Parce que dans mon cas, tout le contenu de ce type de publication personnalisé se trouve dans une section de ma barre de navigation, j'ai pu simplement ajouter la classe body avant la déclaration, c'est-à-dire .single-film #menu-item-262 où "film" est le nom de mon type de publication personnalisée.

Cela dit, cette solution ne fonctionnera pas pour les sites où les types de publication personnalisés résident dans différentes parties de la navigation. Y a-t-il une meilleure façon de s'y prendre que moi?

Merci!

0
aendrew