Cum să aloci un meniu personalizat WP 3.0 la o locație de navigare a temei prin script?

5 apr. 2011, 17:08:19
Vizualizări: 442
Voturi: 2

Folosesc acest script într-un plugin pentru a crea un nou meniu personalizat din mers și pentru a aloca o pagină la el...

$menu_id = wp_create_nav_menu( 'header-menu' );
$menu = array( 'menu-item-type' => 'custom', 'menu-item-url' => get_home_url('/'),'menu-item-title' => 'Acasă', 'menu-item-status' => 'publish' );
wp_update_nav_menu_item( $menu_id, 0, $menu );

Și asta funcționează perfect. Totuși, la ce mă blocat este cum să conectez acest meniu la una dintre "Locațiile de Meniu" ale temei mele. Deoarece înregistrez o locație de navigare numită "header-menu" în functions.php al temei, am crezut că codul de mai sus, apelând wp_create_nav_menu( 'header-menu' ) ar conecta meniul meu personalizat la locația definită în tema mea ca "header-menu", dar nu se întâmplă asta.

De exemplu, tema mea înregistrează două locații de meniu...

register_nav_menus(
  array('header-menu' => __( 'Meniu Header' ), 
 'footer-menu' => __( 'Meniu Footer' ))
);

Cum pot conecta "Meniu Header" pe care l-am creat cu wp_create_nav_menu( 'Meniu Header' ) la locația "Meniu Header" pe care am înregistrat-o în tema mea? Sunt sigur că răspunsul este undeva în nav-menu.php, dar nu îl găsesc.

Adică, pot face asta manual din WordPress "Aspect > Meniuri" Manager și sub "Locații Temă > Meniu Navigare Principal" selectez "Meniu Header" și apăs "Salvează". Încerc să fac asta prin script.

0
Toate răspunsurile la întrebare 1
0

Dacă ai găsit deja un răspuns la această întrebare care funcționează bine pentru tine, te încurajez să îl postezi aici pentru ca și alții să îl vadă. Dacă nu, modul în care aș aborda această problemă ar fi să folosesc un filtru personalizat sau o acțiune.

În locul unde meniul este afișat în tema, folosește fie apply_filters fie do_action pentru a declanșa suprascrierea dorită, iar în plugin-ul tău, atașează-te la acea acțiune/filtru pentru a afișa suprascrierea. Aceasta este o modalitate mai puțin distructivă de a realiza aceeași sarcină, deoarece nu suprascrii o asociere de meniu.

13 feb. 2012 09:01:01