Программно (PHP) получить nr. элементов в главном меню навигации

Мне нужно получить номер. элементов в основном навигационном меню. Мне нужно это, чтобы определить ширину в процентах от каждого элемента списка. Поэтому мне также нужно изменить / добавить атрибут ширины css элементов списка каким-то образом, и я еще не понял, как это сделать … В качестве первой попытки я попытался выполнить функцию wp_get_nav_menu_object . Я разрабатываю тему для детей из двадцати двенадцати шаблонов. Я создал пользовательскую домашнюю страницу, где загружаю основную навигацию (скопированную прямо из файла sidebar.php в папке с исходными темами) и сразу же вызываю wp_get_nav_menu_object, используя фрагмент кода

<?php if (has_nav_menu('primary')) : ?> <nav id="site-navigation" class="main-navigation" role="navigation"> <?php // Primary navigation Menu wp_nav_menu(array( 'menu_class' => 'nav-menu', 'theme_location' => 'primary', )); // none of these seem to work... //$menu = wp_get_nav_menu_object('menu-primary-menu'); $menu = wp_get_nav_menu_object('primary'); echo $menu->count; ?> </nav> <!-- /.main-navigation --> <?php endif; ?> 

Я знаю, что я могу пойти с jQuery / JavaScript-решением (именно это я и делаю в данный момент), но это не идеально. Я начинаю подозревать, что для того, что я хочу сделать, мне нужно создать собственное пользовательское основное меню навигации с помощью класса Walker. Может ли кто-нибудь посоветовать мне, какой будет лучший подход?

Solutions Collecting From Web of "Программно (PHP) получить nr. элементов в главном меню навигации"

Вы не предоставляете правильный параметр функции wp_get_nav_menu_object() . Для этого требуется идентификатор меню или меню, но вы предоставляете местоположение темы меню. Очевидно, я не могу сказать вам, что такое идентификатор или пул вашего меню.

Один из способов получения идентификатора меню меню, назначенного для размещения темы, – get_nav_menu_locations() :

 $menu = wp_get_nav_menu_object( get_nav_menu_locations()['primary'] ); echo $menu->count;