come assegnare un ID a un menu WordPress

11 gen 2013, 15:05:08
Visualizzazioni: 14.6K
Voti: -1

Il seguente codice non produce un UL con ID "nav". Produce semplicemente:

<div class="menu"><ul>

Questo è il codice:

wp_nav_menu( array( 'theme_location' => 'menu-1', 'container_id'    => 'nav';

Secondo il WP Codex questo dovrebbe funzionare. Perché non funziona?

Versione WP = 3.5

Aggiornamento

Ora ho:

wp_nav_menu( array( 'theme_location' => 'menu-1', 'items_wrap' => '<ul id="nav">%3$s</ul>', 'menu_id' => 'nav'));

ma anche questo non funziona.

2
Commenti

assicurati che il tuo tema non filtri wp_nav_menu_args e sovrascriva le tue impostazioni.

Milo Milo
13 gen 2013 05:35:30

@Milo. Non c'è nulla in functions.php riguardo a questo.

Steve Steve
13 gen 2013 08:50:27
Tutte le risposte alla domanda 4
3

Secondo quella pagina del Codex, devi usare menu_id. container_id influisce solo sul div circostante.

11 gen 2013 15:11:44
Commenti

Penso che tu abbia ragione, ma sta ancora producendo <div class="menu">

Steve Steve
11 gen 2013 15:29:26

sì, secondo il codex, ma non ha funzionato

GusDeCooL GusDeCooL
10 gen 2015 17:21:35

questa è la risposta corretta

Nate Beers Nate Beers
4 ago 2017 19:03:28
4

Il parametro corretto per la ul è menu_id, e per il container container_id. Ma la ul funziona solo se passi …

'<ul id="%1$s" class="%2$s">%3$s</ul>'

… come argomento items_wrap.

Puoi codificare il valore in questo modo:

wp_nav_menu(
    array (
    'items_wrap'      => '<ul id="nav">%3$s</ul>'
    'theme_location' => 'top-menu'
    )
);

Vedi Qualsiasi documentazione per l'argomento "items_wrap" di wp_nav_menu?

11 gen 2013 17:10:29
Commenti

Grazie @toscho, ma neanche questo ha funzionato.

Steve Steve
13 gen 2013 05:22:25

Ora ho wp_nav_menu( array( 'theme_location' => 'menu-1', 'items_wrap' => '

', 'menu_id' => 'nav'));

Steve Steve
13 gen 2013 05:23:44

@Steve Disattiva tutti i plugin. Stai causando un problema molto serio. La mia soluzione funziona in tutti i casi.

fuxia fuxia
13 gen 2013 09:25:37

Ho disabilitato tutti i plugin, ma il problema persiste: l'output è <div class="menu"><ul>

Steve Steve
14 gen 2013 13:41:00
1

Secondo il mio ragionamento, menu-1 dovrebbe essere l'ID del tuo menu. Ti consiglio di leggere i parametri qui e fornire i parametri appropriati.

Secondo me il tuo codice dovrebbe essere:

wp_nav_menu( array( 'menu' => 'menu-1', 'container_id'    => 'nav' ));
11 gen 2013 15:21:54
Commenti

il parametro menu accetta un ID dal database, non un ID CSS. È un ID CSS che desidero assegnare all'elemento UL.

Steve Steve
11 gen 2013 15:30:57
0

Questo potrebbe essere utile, è stato d'aiuto per me per capire.

    <?php wp_nav_menu( array(
            'menu' => 0,
            'container' =>false,
            'menu_class' => 'nav',
            'echo' => true,
            'before' => '',
             'after' => '',
             'link_before' => '',
             'link_after' => '',
             'depth' => 0,
            'walker' => new description_walker())
             );?>

Questo assegnerà ai tuoi menu degli ID casuali quando li crei. Spero sia stato utile, non sono sicuro di aver capito correttamente la domanda.

11 gen 2013 16:34:33