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
se si vorrebbe o se si volesse? 😀
Cosa se si vorrebbe o si volesse? Spiegati meglio