Как мне получить пункты меню только с одного уровня?
Функция WordPress wp_get_nav_menu_items возвращает вложенную навигацию всего моего сайта и все. Теперь, если я хочу получить навигационное меню только для одного "уровня" этой вложенной навигации, как мне это сделать?
3
Author: Brian Fegter, 2012-02-13
2 answers
Вы пытаетесь отобразить сообщения сверху вниз на определенное количество уровней?
Если это так, используйте wp_nav_menu. У него есть аргумент "глубина", созданный специально для этого, и он работает болезненно.
wp_nav_menu(array('depth' => 2));
Также, http://codex.wordpress.org/Function_Reference/wp_nav_menu
4
Author: Vlad Ionescu, 2012-02-14 19:30:07
Если вы хотите вернуть массив элементов (не выводить, как wp_nav_menu
), вы можете попробовать следующее:
$menu_name = 'your_menu_location';
if ( ( $locations = get_nav_menu_locations() ) && isset( $locations[ $menu_name ] ) ) {
$menu = wp_get_nav_menu_object( $locations[ $menu_name ] );
$menu_items = wp_get_nav_menu_items($menu->term_id);
foreach ( (array) $menu_items as $key => $menu_item ) {
if ($menu_item->menu_item_parent != 0 ) continue;
$title = $menu_item->title;
$url = $menu_item->url;
DO WHAT EVER YOU WANT HERE
}
} // endif has nav menu or not
5
Author: Tran Cuong, 2013-05-14 01:19:19