Je dois insérer un menu dans le texte d'une page. J'ai trouvé ces deux plugins mais aucun d'entre eux ne fonctionne. Les deux n'ont pas été mis à jour depuis 6 ans:
https://wordpress.org/plugins/custom-menu/
https://wordpress.org/plugins/custom-menu-shortcode/
J'ai trouvé ce code pour créer mon propre shortcode
function print_menu_shortcode($atts, $content = null) {
extract(shortcode_atts(array( 'name' => null, 'class' => null ), $atts));
return wp_nav_menu( array( 'menu' => $name, 'menu_class' => $class, 'echo' => false ) );
}
add_shortcode('menu', 'print_menu_shortcode');
Et puis shortcode devrait être:
[menu name="-your menu name-" class="-your class-"]
Cela fonctionne mais la classe n'est pas imprimée du tout. Quel est le problème dans la fonction? J'ai besoin d'imprimer la classe.
Ce code devrait fonctionner. Êtes-vous usign "myclass" en tant que classe et non pas ".myclass"?
Est-ce pour un usage spécifique où la classe sera toujours la même? Si vous ne souhaitez l'utiliser que sur un seul site, vous pouvez le faire:
function print_menu_shortcode($atts, $content = null) {
extract(shortcode_atts(array( 'name' => null, 'class' => null ), $atts));
return wp_nav_menu( array( 'menu' => $name, 'menu_class' => 'myclass', 'echo' => false ) );
}
add_shortcode('menu', 'print_menu_shortcode');
Puis changez la section 'menu_class' => 'myclass' avec la classe dont vous avez besoin. cela évitera d'avoir à utiliser la classe. Encore une fois, n'utilisez pas le "." devant la classe ici.
Utilisation du code court:
[menu name="menu_name"]