Come assegnare un menu personalizzato di WP 3.0 alla posizione di navigazione del tema tramite script?
Sto utilizzando questo script all'interno di un plugin per creare un nuovo menu personalizzato al volo e assegnargli una pagina...
$menu_id = wp_create_nav_menu( 'header-menu' );
$menu = array( 'menu-item-type' => 'custom', 'menu-item-url' => get_home_url('/'),'menu-item-title' => 'Home', 'menu-item-status' => 'publish' );
wp_update_nav_menu_item( $menu_id, 0, $menu );
E questo funziona perfettamente. Tuttavia, quello su cui sono bloccato è come collegare questo menu a una delle "Posizioni Menu" del mio tema. Poiché sto registrando una posizione di navigazione chiamata "header-menu" nel functions.php del mio tema, pensavo che il codice sopra, chiamando wp_create_nav_menu( 'header-menu' ) avrebbe collegato il mio menu personalizzato alla posizione definita nel mio tema come "header-menu", ma non è così.
Ad esempio, il mio tema registra due posizioni menu...
register_nav_menus(
array('header-menu' => __( 'Il Mio Menu Header' ),
'footer-menu' => __( 'Menu Footer' ))
);
Come posso collegare il "Header Menu" che ho creato con wp_create_nav_menu( 'Header Menu' ) alla posizione "Il Mio Menu Header" che ho registrato nel mio tema? Sono sicuro che la risposta sia da qualche parte in nav-menu.php, ma non riesco a trovarla.
Ad esempio, posso farlo manualmente dal gestore "Aspetto > Menu" di WordPress e sotto "Posizioni tema > Menu di Navigazione Principale" seleziono "Header Menu" e clicco "Salva". Sto cercando di farlo tramite script.

Se hai già trovato una soluzione che funziona bene per te, ti incoraggio a condividerla qui per aiutare gli altri. In caso contrario, il modo in cui procederei sarebbe quello di utilizzare un filtro personalizzato o un'azione.
Dove il menu viene visualizzato nel tema, puoi usare apply_filters
oppure do_action
per attivare l'override che desideri, e nel tuo plugin, agganciarti a quell'azione/filtro per generare l'override. Questo è un approccio meno distruttivo per ottenere lo stesso risultato, poiché così non sovrascrivi l'associazione del menu.
