Creare e gestire uno o più menu per i sottodomini su wordpress 3.0

UPDATE 1 Settembre 2010:
Ho trovato un piccolo problema nello script niente di grave, ma per ulteriori informazioni leggete il nuovo articolo di come visualizzare il menu in tutti i sottodomini

Mi è capitato un mese fa, di creare una sorta di portale con vari sottodomini.
Al dominio principale avevo creato un menu che volevo che fosse esteso per tutti i vari sottodomini che gestisco. Ma purtroppo non conoscendo molto affondo le nuove funzioni introdotte su wordpress 3.0 e non trovando alcun plugin che facesse al mio caso sono riuscito solo a creare per ogni sottodominio un menu uguale. Un lavoro molto macchinoso e soprattutto una vera perdita di tempo infatti se si vorrebbe aggiungere o modificare una voce per tutti i sottodomini dovremmo accedere per ogni back-end di ogni sottodomini e apportare le modifiche.
Finalmente oggi dopo ulteriori informazioni sul codex di wordpress sono riuscito ad ovviare al mio problema. Creando una semplice funzione da richiamare e inserirla dove vorremmo che venisse visualizzata. Diciamo che ho sostituito la funzione wp_nav_menu() nell’header.php e inserito sd_nav_menu();

Basta aprire il file function.php del vostro tema o dei vostri temi, dove volete far comparire il menu generale per tutta la vostra network, e inserire in fondo a questa pagina:

// Semplice funzione per richiamare il menu dal blog principale
function sd_nav_menu() {
global $wpdb;

// Richiamiamo le tabelle sql del blog numero 1 da dove ricavare il nostro menu
$wpdb->set_blog_id(1);

// solita funzione wp_nav_menu(); associata a una variabile
$menu = wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'primary', 'menu' => '3' ) );
return $menu;
}

È molto semplice da usare iniziamo ad analizzare la funzione:
$wpdb->set_blog_id(1); quel numero 1 è il numero del vostro blog principale, o meglio dove è stato creato il vostro menu principale da applicare a tutti i sottodomini. Se l’avete creato su un altro blog il menu principale basta che cambiate il numero 1 col numero corrispondente. Per ricavare il numero del blog basta essere loggati come superadmin e andare in Super Admin -> Siti trovere la tabella con l’id e il nomi dei vostri domini.

La riga: $menu = wp_nav_menu( array( ‘container_class’ => ‘menu-header’, ‘theme_location’ => ‘primary’, ‘menu’ => ‘3’ ) );
è personalizzabile infatti sfrutta come funzione wp_nav_menu(); trovate ulteriori informazioni come personalizzare wp_nav_menu() nel codex di wordpress.org
Come vedete è molto semplice…

UPDATE 1 Settembre 2010:
Ho trovato un piccolo problema nello script niente di grave, ma per ulteriori informazioni leggete il nuovo articolo di come visualizzare il menu in tutti i sottodomini

4 pensieri riguardo “Creare e gestire uno o più menu per i sottodomini su wordpress 3.0”

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *