Modifier les noms de classe CSS du widget pour différentes pages de catégorie dans WordPress
Je veux changer les noms de classe des widgets de la barre latérale sur chaque page de catégorie différente de WordPress et j’ai pensé que la meilleure façon de le faire serait de créer une fonction dans functions.php avec toutes les conditions et de renvoyer le nom de classe requis. J’ai ensuite appelé la fonction dans les balises list de la fonction register_sidebar.
if (function_exists('register_sidebar')) {
register_sidebar(array(
'before_widget' => '<li class="sidebarModule">',
'after_widget' => '</li><!-- end module -->',
'before_title' => '<h2 class="moduleTitle "'.set_widget_title_color().'>',
'after_title' => '</h2>',
));
}
function set_widget_title_color() {
if(is_category('technology')) {
$color = "catNavColor1_active";
} elseif(is_category('gadgets')) {
$color = "catNavColor2_active";
} elseif(is_category('social-media')) {
$color = "catNavColor3_active";
} elseif(is_category('gaming')) {
$color = "catNavColor4_active";
} elseif(is_category('other')) {
$color = "catNavColor5_active";
}
return $color;
}
Pour une raison quelconque, ce qui précède ne fonctionne pas. Aidez-moi s’il vous plaît
Merci
Solution n°1 trouvée
Je pense register_sidebars
qu’on l’appelle trop tôt dans le processus, quand la catégorie n’est pas encore définie. As-tu essayé d’implémenter le dynamic_sidebar_params
filtre ? Je n’ai rien trouvé dans le Codex WordPress, mais j’ai trouvé ce bel exemple. Votre autre question sur ce sujet a également une réponse complète.
Cela ne fonctionne que si vous implémentez les barres latérales à l’aide dynamic_sidebar
de votre widget, car cette fonction appelle le dynamic_sidebar_params
filtre. Si vous avez des widgets statiques (définis dans votre modèle, n’utilisant pas la page d’administration du widget), vous devez ajouter un appel à votre fonction dans ce code de modèle, comme ceci :
<li class="sidebarModule">
<h2 class="moduleTitle <?php echo set_widget_title_color(); ?>">Widget title</h2>
<?php /* Your widget code */ ?>
</li><!-- end module -->
0 commentaire