¿Cómo configurar mediante programación un menú para que sea el Menú principal?

2

Ya he leído Cómo cambiar entre el primario ¿Menús programáticamente? pero en realidad no responde la pregunta. La respuesta aceptada es solo dos soluciones, pero no una respuesta real a la pregunta.

Cuando mi tema está activado, creo varios menús y me gustaría marcar uno de ellos como el Menú principal.

¿Hay una función de wordpress a la que puedo llamar para hacer que mi menú creado por programación sea el Menú principal? Soy un desarrollador experimentado, pero soy nuevo en wordpress y la terminología en las funciones hace que sea muy difícil buscar en el códice para encontrar lo que estoy buscando. Cualquier ayuda es apreciada.

    
pregunta Kenny Wyland 01.06.2018 - 21:27

2 respuestas

4

Revisé el código de wordpress para ver qué pasaba cuando envié el formulario desde la interfaz de usuario de administración para ver a qué función estaba llamando (e hice un var_export() en la variable que se estaba pasando) y vi que estaba llamando% código%. He actualizado mi código para usar esto y parece estar funcionando:

$locations = get_theme_mod('nav_menu_locations');
$locations['primary'] = $menu_id;
set_theme_mod( 'nav_menu_locations', $locations );

Una de las cosas que me desconcertaron cuando intentaba averiguar cómo hacer esto es que la documentación para set_theme_mod( 'nav_menu_locations', $menu_locations ); dice que devuelve una cadena, pero en este caso está devolviendo una matriz y no lo hice. No creo que vaya a funcionar.

    
respondido por el Kenny Wyland 01.06.2018 - 22:03
2

Parece que estás buscando esto:

Añadir a functions.php

$locations = get_theme_mod('nav_menu_locations');
$locations['primary-menu'] = $term_id_of_menu;
set_theme_mod( 'nav_menu_locations', $locations );

Fuente: enlace

    
respondido por el Liam Stewart 01.06.2018 - 22:02

Lea otras preguntas en las etiquetas