web-dev-qa-db-fra.com

L'élément de menu actuel de Nav Walker ne s'affiche pas

Je construis un thème au-dessus d'un thème de démarrage (wp-bootstrap) et je ne parviens pas à faire en sorte que Nav Walker affiche l'élément de menu actuel. L'élément current-menu-item n'est pas présent lorsque j'utilise un inspecteur Web sur le code HTML de sortie. Donc donc je ne peux pas le nommer.

Ceci est le code dans mon fichier de modèle:

          <?php
       /** Loading WordPress Custom Menu  **/
       wp_nav_menu( array(
          'menu'            => 'main-menu',
          'container' => '',
          'container_class' => 'navbar-blue',
          'menu_class'      => 'nav',
          'menu_id' => 'main-menu',
          'walker' => new Bootstrapwp_Walker_Nav_Menu()
      ) ); ?>

Et voici le code dans function.php:

include 'includes/class-bootstrapwp_walker_nav_menu.php';

Et enfin, voici le code du fichier client nav walker:

class Bootstrapwp_Walker_Nav_Menu extends Walker_Nav_Menu {

function __construct() {
}
  function start_lvl(&$output, $depth) {

$indent = str_repeat("\t", $depth);
$output .= "\n$indent<ul class=\"dropdown-menu\">\n";
  }
}

J'ai parcouru quelques réponses de stackexchange et essayé de changer le code pour les faire correspondre, mais rien n'a résolu le problème (c'est-à-dire que rien n'a fait en sorte que item-menu-item apparaisse dans la sortie HTML).

Toute aide serait appréciée.

2
Paul Burnhill

Comme il fonctionne comme prévu dans le fichier header.php (mais pas dans sidebar.php), vous pouvez ajouter ceci dans header.php:

global $my_nav;
$my_nav= wp_nav_menu( array(
          'menu'            => 'main-menu',
          'container' => '',
          'container_class' => 'navbar-blue',
          'menu_class'      => 'nav',
          'menu_id' => 'main-menu',
          'walker' => new Bootstrapwp_Walker_Nav_Menu(),
          'echo' => 0,
      ) ); ?>

puis dans votre fichier sidebar.php, vous pouvez ajouter

global $my_nav;
echo $my_nav;

pour afficher le menu.

0
birgire