Перестало работать выпадающее меню wordpress?
После тогда как отредактировал меню, просто добавил новые туда ссылки, перестало работать под меню, 2 и 3 уровня, в чём может быть нюанс?
Дополнительно:
Например, в том, что меню не предусматривает добавление ссылок на такой уровень вложенности и не умеет их показывать. Нужно смотреть menu-walker, помимо того нужно смотреть что реально показывается на странице
"Не работает" - это очень расплывчатое определение. Не показывается подменю при ховере, не добавились ссылки в меню, сайт в 500 упал, что там?
Просто чтобы в открытых не висел
Я проверил хук Walker_Nav_Menu{}, и оказалось что там просто не был прописан такой уровень вложенности!
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Если после добавления новых пунктов перестали работать 2-й и 3-й уровни меню, сначала нужно разделить две ситуации: подменю есть в HTML, но не показывается, или WordPress вообще не выводит вложенные уровни.
Если в DOM нет
<ul class="sub-menu">для 2/3 уровня, причина обычно в параметреdepthили кастомном Walker. Проверьте вызов меню:wp_nav_menu([ 'theme_location' => 'primary', 'menu_class' => 'nav-menu', 'depth' => 0, // 0 = без ограничения глубины ]);
Если используется свой класс от
Walker_Nav_Menu, в нём должны быть методы для уровней, минимумstart_lvl()иend_lvl():class Theme_Menu_Walker extends Walker_Nav_Menu { public function start_lvl(&$output, $depth = 0, $args = null) { $output .= PHP_EOL . '<ul class="sub-menu sub-menu--level-' . (int) ($depth + 1) . '">' . PHP_EOL; } public function end_lvl(&$output, $depth = 0, $args = null) { $output .= '</ul>' . PHP_EOL; } }
Если
sub-menuесть в HTML, но не раскрывается, смотрите CSS и JS: возможно, стили рассчитаны только на один уровень вложенности или скрипт открывает только ближайший.sub-menu. Для 3-го уровня часто нужно добавить отдельные CSS-правила позиционирования.Итог по вашему случаю: если в
Walker_Nav_Menuне был прописан нужный уровень вложенности, править нужно именно walker или убрать ограничение глубины вwp_nav_menu().