Obtener el ID del menú usando su nombre
26 jun 2013, 12:33:41
Vistas: 27K
Votos: 1
Comentarios
Todas las respuestas a la pregunta
4
0
Puedes usar la función get_term_by y usar 'name' en el parámetro field.
<?php get_term_by( $field, $value, $taxonomy, $output, $filter ) ?>
Ejemplo:
$term = get_term_by('name', 'Social Network', 'nav_menu');
$menu_id = $term->term_id;
Aquí está el enlace a la página del codex: http://codex.wordpress.org/Function_Reference/get_term_by
Espero que esto ayude.

lucymtc
81
5 jun 2014 14:38:37
0
Escribamos
Todo lo que necesitas es get_terms()
Escribamos wp_menu_id_by_name( $name )
/**
* Obtiene un ID de menú por su nombre
*
* @param string $name El nombre del menú
* @return int|boolean El ID del menú o false si no se encuentra
*/
function wp_menu_id_by_name( $name ) {
$menus = get_terms( 'nav_menu' );
foreach ( $menus as $menu ) {
if( $name === $menu->name ) {
return $menu->term_id;
}
}
return false;
}
Usémoslo
echo 'El ID de Mi Menú Especial es ' . wp_menu_id_by_name( 'Mi Menú Especial' );
// Salida: El ID de Mi Menú Especial es 3

Nabil Kadimi
2.73K
23 may 2014 01:42:39
0
He utilizado la función wp_get_nav_menu_object
. Puedes pasarle el slug o nombre del menú para obtener el objeto del menú y luego acceder al term_id
desde él. Codex para wp_get_nav_menu_object.
$menu_obj = wp_get_nav_menu_object(MENU_SLUG);
$menu_id = $menu_obj ? $menu_obj->term_id : 0;

Oksana Romaniv
153
9 jul 2020 13:21:40
0
No estás usando el código correcto, usa este en su lugar:
global $wpdb;
$tablename = $wpdb->prefix.'terms'; // usa siempre el prefijo de tabla
$menu_name = 'menu-principal'; // nombre del menú
$menu_id = $wpdb->get_results(
"
SELECT term_id
FROM ".$tablename."
WHERE name= '".$menu_name."'
"
);
// resultados en array
foreach($menu_id as $menu):
echo $menu->term_id;
endforeach;

Balas
621
26 jun 2013 13:48:25
Preguntas relacionadas
3
respuestas
2
respuestas