ok donc j'ai un menu de navigation avec le niveau supérieur des éléments de menu étant des pages statiques. Lorsque vous mettez en surbrillance ou visitez l'un d'entre eux, un sous-menu apparaît. Chacun d'entre eux a son propre sous-menu et chaque sous-menu est plein de termes de taxonomie personnalisés. WordPress ne donnant que la classe d’éléments de menu en cours sur une page d’archive, j’ai besoin d’ajouter ma propre classe ou tout simplement d’ajouter des CSS personnalisés pour afficher et mettre en évidence le terme parent lors de la visualisation d’un seul élément.
Mon problème est que le code fonctionnait mais qu'il a cessé de fonctionner. Voir le code ci-dessous
<?
$has_news = has_term('news');
if ($has_news)
echo '<style type=text/css>#navbar{display:block}';
else
echo '';
?>
Ceci est lié à l’une de mes autres questions, mais j’ai pensé que c’était mieux avec des étiquettes différentes.
Question connexe: Mettez en surbrillance les termes du menu de navigation
wpversion: 3.1.2
Le problème est que vous devez passer un $post->ID
pour ne pas return false.
Il vaut mieux utiliser is_object_in_taxonomy($object_type, $taxonomy)
et indiquer à la fois le terme et la taxe dans la fonction. Il retourne (boolean)
, ajoutez donc simplement votre classe en fonction du résultat:
echo $class = is_object_in_taxonomy( 'news', 'your_taxonomy' ) ? 'current-whatever' : '';
// or: (simplified for readabilities sake:
// set empty and override only in case.
// So you avoid dropping errors if the condition was not met and $current not set.
$class = '';
if ( is_object_in_taxonomy( 'news', 'your_taxonomy' ) )
echo $class = 'current-whatever';