Perché l'argomento container non funziona in wp_nav_menu()?

6 feb 2015, 09:44:12
Visualizzazioni: 920
Voti: 0

Il seguente codice genera un menu ma manca il tag container <nav>.

$menu_settings = array(
    'menu' => 'Packages',
    'container' => 'nav', // Specifica il tag container
    'container_class' => '', // Classe CSS per il container
    'container_id' => '', // ID per il container
    'menu_class' => 'menu', // Classe CSS per il menu
    'menu_id' => '', // ID per il menu
    'echo' => true, // Se restituire o stampare il menu
    'fallback_cb' => 'wp_page_menu', // Callback di fallback
    'before' => '', // Testo prima del link
    'after' => '', // Testo dopo il link
    'link_before' => '', // Testo prima del testo del link
    'link_after' => '', // Testo dopo il testo del link
    'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>', // Wrap per gli elementi del menu
    'depth' => 0, // Profondità del menu
    'walker' => '', // Walker personalizzato
    'theme_location' => 'primary' // Posizione del tema
);

?>

      <?php wp_nav_menu( $menu_settings ); ?>

Questi menu sono registrati in functions.php:

register_nav_menus( array(
 'primary' => __( 'Packages Menu', 'nameoftheme'), // Menu principale
 'secondary' => __( 'Services Menu', 'nameoftheme' ), // Menu secondario
) );

Viene renderizzato solo un <ul> con gli elementi della lista. Anche gli elementi della lista non sono wrappati.

5
Commenti

Per favore, indentate correttamente il vostro codice. Su schermi più piccoli gran parte del vostro codice esce dai margini e diventa illeggibile :-)

Pieter Goosen Pieter Goosen
6 feb 2015 09:46:22

Fatto. Tuttavia, dovrei far notare che sviluppatori meno ragionevoli potrebbero offendersi se gli si dice di 'indentare correttamente' :-)

codecowboy codecowboy
6 feb 2015 09:52:52

È vero, ma ancora una volta sta a loro decidere se vogliono essere aiutati. La maggior parte degli utenti come me utilizza dispositivi con schermi piccoli come telefoni cellulari, e se il codice non è indentato o formattato correttamente, non possiamo leggerlo e quindi ignoriamo semplicemente la domanda. Come sviluppatore dovresti sapere quanto sia frustrante leggere codice e fare debug se ha problemi di formattazione. :-) Questi sono solo i miei pensieri e un consiglio. È vero, la leggibilità di una domanda influisce sulla quantità di feedback positivi che riceverai

Pieter Goosen Pieter Goosen
6 feb 2015 09:59:13

Il codice sembra essere corretto. L'ho appena provato e restituisce effettivamente il contenitore di navigazione, con gli elementi correttamente incapsulati.

User User
6 feb 2015 10:12:44

Succede ancora dopo aver disabilitato tutti i plugin e passato a uno dei temi Twenty*? Segui il processo collegato per identificare il plugin o il tema in conflitto.

kaiser kaiser
10 feb 2015 10:37:40
Tutte le risposte alla domanda 1
1

Poiché utilizzo il framework di tema roots, questa riga rimuove l'argomento container:

function roots_nav_menu_args($args = '') {
  $roots_nav_menu_args = array();
  $roots_nav_menu_args['container'] = false;
  if (!$args['items_wrap']) {
    $roots_nav_menu_args['items_wrap'] = '<ul class="%2$s">%3$s</ul>';
  }
  if (!$args['depth']) {
    $roots_nav_menu_args['depth'] = 2;
  }
  return array_merge($args, $roots_nav_menu_args);
}
add_filter('wp_nav_menu_args', 'roots_nav_menu_args');
6 feb 2015 13:09:53
Commenti

Questo ora può essere trovato in Soil: add_theme_support('soil-nav-walker');

Sven Sven
5 dic 2018 07:00:06