Если вы знаете местонахождение меню идентификатор (обычно объявленный в functions.php на "register_nav_menus"), вы можете использовать этот фрагмент:
// GET ALL MENU OBJECTS AT SPECIFIED LOCATION
function yourprefix_get_menu_items($location_id){
//$locations = get_registered_nav_menus();
$menus = wp_get_nav_menus();
$menu_locations = get_nav_menu_locations();
if (isset($menu_locations[ $location_id ]) && $menu_locations[ $location_id ]!=0) {
foreach ($menus as $menu) {
if ($menu->term_id == $menu_locations[ $location_id ]) {
$menu_items = wp_get_nav_menu_items($menu);
break;
}
}
return $menu_items;
}
}
или более короткую версию из Codex:
function yourprefix_get_menu_items($menu_name){
if (($locations = get_nav_menu_locations()) && isset($locations[ $menu_name ])) {
$menu = wp_get_nav_menu_object($locations[ $menu_name ]);
return wp_get_nav_menu_items($menu->term_id);
}
}
Затем сделайте все, что хотите, с таким массивом:
$menu_items = yourprefix_get_menu_items('sidebar-menu'); // replace sidebar-menu by desired location
if(isset($menu_items)){
foreach ((array) $menu_items as $key => $menu_item) {
...some code...
}
}
И вот ссылка abou т все данные nav_menu которые можно выбрать непосредственно из базы данных по запросу MySQL: http://lasota.community.uaf.edu/2011/07/29/nav-menu-data-location-in-wordpress-3-2/
Вы имеете в виду получить их как массив или строку внутри функции или уметь добавлять поддержку навигационного меню в свою тему? – Marventus
Хотите получить их как массив или строку да. – user2674354