wp_get_nav_menu_object()
Получает объект меню WordPress. Возвращает только объект самого меню без элементов в нем.
Используйте wp_get_nav_menu_items(), чтобы получить пункты (элементы) меню.
Работает на основе: get_term(), get_term_by()
Основа для: is_nav_menu(), wp_get_nav_menu_items()
1 раз — 0.000026 сек (очень быстро) | 50000 раз — 0.24 сек (очень быстро)
Хуки из функции
Возвращает
WP_Term|false.
false- не удалось получить меню по параметру $menu, меню (термина) не существует.-
WP_Term - объект элемента таксономии (меню). Меню хранятся как элементы таксономии
nav_menu.WP_Term Object ( [term_id] => 693 [name] => Панель [slug] => panel [term_group] => 0 [term_taxonomy_id] => 701 [taxonomy] => nav_menu [description] => [parent] => 0 [count] => 1 [filter] => raw )
Использование
wp_get_nav_menu_object( $menu );
- $menu(число/строка/WP_Term) (обязательный)
ID, ярлык или название меню.
Можно передать сразу объект меню, в этом случает он будет пропущен через фильтр wp_get_nav_menu_object и вернется.
Примеры
#1 Получим объект меню
Допустим, у нас есть название расположения меню: my_menu_location зарегистрированное с помощью register_nav_menu(). И мы создали меню в админке и прикрепили его к этому расположению. Тогда:
$locations = get_nav_menu_locations();
if( isset( $locations['my_menu_location'] ) ){
$items = wp_get_nav_menu_object( $locations['my_menu_location'] );
print_r( $items );
/* выведет
stdClass Object
(
[term_id] => 693
[name] => Панель
[slug] => panel
[term_group] => 0
[term_taxonomy_id] => 701
[taxonomy] => nav_menu
[description] =>
[parent] => 0
[count] => 1
[filter] => raw
)
*/
}
#2 Демо
// По имени меню $menu = wp_get_nav_menu_object( 'wpdocs mainmenu' ); // По ярлыку (слагу) $menu = wp_get_nav_menu_object( 'wpdocs-mainmenu' ); // По ID $menu_name = 'wpdocs mainmenu'; $menu_obj = get_term_by( 'name', $menu_name, 'nav_menu' ); $menu_id = $menu_obj->term_id; $menu = wp_get_nav_menu_object( $menu_id ); // По расположению (локации) $menu_name = 'primary'; $locations = get_nav_menu_locations(); $menu_id = $locations[ $menu_name ] ; wp_get_nav_menu_object( $menu_id );
Список изменений
| С версии 3.0.0 | Введена. |