register_nav_menus() non registra i menu

26 feb 2012, 06:43:18
Visualizzazioni: 20.6K
Voti: 6

Aiuto con la registrazione dei menu:

Ho seguito questa guida (http://codex.wordpress.org/Navigation_Menus) passo dopo passo.

Ho aggiunto il seguente codice a functions.php:

function register_my_menus() {
  register_nav_menus(
    array('header-menu' => __( 'Menu Header' ) )
  );
}

add_action( 'init', 'register_my_menus' );

Ma la guida dice che questo farà apparire il menu nella schermata di amministrazione Aspetto -> Menu nel box "Posizioni del Tema" come "Menu Header".

Quando vado in Aspetto -> Menu tutto è in grigio e non c'è alcuna opzione di "Posizioni del Tema"

1
Commenti

Aggiungi uno screenshot di wp-admin/nav-menus.php. E fai qualcosa con le altre domande orfane.

fuxia fuxia
26 feb 2012 06:49:20
Tutte le risposte alla domanda 1
4

Non è necessario aggiungere alcuna azione per registrare il tuo Menu di Navigazione. Ecco alcuni rapidi passaggi per far funzionare il tuo Menu di Navigazione WordPress...

Registrare il Menu di Navigazione

if (function_exists('register_nav_menu'))
{
    register_nav_menu('header_menu', 'Menu Intestazione');
}

Definire e Utilizzare il Menu di Navigazione nel tuo Tema: Di solito posizioniamo il codice DIV del Menu nel file header.php; quindi presumo che anche il tuo sia nel file header.php. Apri quel file e individua il contenitore DIV dove desideri che appaia il menu NAV di WordPress. Ecco un esempio tratto da uno dei miei recenti temi WordPress come riferimento:

<div class="css-nav" >

<?php wp_nav_menu( array(
    'sort_column' => 'menu_order',
    'theme_location' => 'header_menu',
    'menu_class' => 'css-menu',
    'title_li' => '<div class="l"></div>',
    'link_before' => '<span class="l">',
    'link_after' => '</span>'
) ); ?> </div>

Una volta aggiunto questo codice, vai nel tuo WP Admin - Menu. Crea un nuovo Menu, se non ne hai ancora uno. Non appena crei un menu, dovresti vedere il meta box "Posizione Tema" sul lato sinistro dell'area di organizzazione degli elementi del menu.

Spero che questo ti sia d'aiuto. :-)

Saluti,

Ruturaj.

26 feb 2012 07:06:10
Commenti

+1 per una risposta ben formattata e di qualità da un nuovo utente. Benvenuto su WPSE. :)

Jared Jared
26 feb 2012 07:09:57

function_exists('register_nav_menu') non serve a nulla: nav-menu.php viene caricato prima del functions.php del tema (vedi wp-settings.php). 'sort_column' e 'title_li' non sono argomenti validi.

fuxia fuxia
26 feb 2012 07:28:50

Grazie... Funziona! Finalmente! La documentazione su Wordpress avrebbe bisogno di un serio aggiornamento

php-b-grader php-b-grader
26 feb 2012 07:38:49

Wow! Una delle 3 posizioni del menu è apparsa non appena ho inserito if (function_exists('register_nav_menu')), ma come faccio a far apparire le altre due? if (function_exists('register_nav_menu')) {

`register_nav_menus('headerMenuLocation', 'Header Menu Location');`
`register_nav_menus('footerLocationOne', 'Footer Location One');`
`register_nav_menus('footerLocationTwo', 'Footer Location Two'); }`
YCode YCode
17 set 2018 22:18:58