Как сделать выпадающие элементы меню в WordPress?

Есть готовая вёрстка сайта, нужно сделать её темой для WP. В ней 4 пункта меню: "Главная", "Новости", "Курсы", "Контакты". Пункт "Курсы" при клике мышью раскрывает 3 курса: "Курс 1", "Курс 2", "Курс 3". Пробовал задавать дочерние элементы меню в админ панели через Внешний вид -> Меню, но верстка тогда ломается и отображается некорректно. Дело в том, что вёрстка написана на фреймворке Materialize, и там меню пишется следующим образом:
<ul>
	<li><a href="#">Главная</a></li>
	<li><a href="#">Новости</a></li>
	<li><a class='dropdown-button' href='#' data-activates='dropdownThis'>Курсы</a></li> <!-- вот элемент с раскрывающимся списком -->
	<ul id='dropdownThis' class='dropdown-content '>
	   <li><a href="#!">Курс 1</a></li>
	   <li><a href="#!">Курс 2</a></li>
	   <li><a href="#!">Курс 3</a></li>
	</ul>
	<li><a href="#">Контакты</a></li>
</ul>


Т.е. нужно сделать так, чтобы, если элемент меню имеет дочерние элементы, к нему добавлялись определённые атрибуты, а его дочерние элементы оборачивались в другой тег ul c другими атрибутами.

Пожалуйста, скажите, как это сделать?
  • Вопрос задан
  • 437 просмотров
Решения вопроса 1
@Dredder Автор вопроса
В итоге я нашёл в интернете готовое решение для встраивания бутстраповского меню и переделал его под себя

https://github.com/twittem/wp-bootstrap-navwalker
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
AlexanderShustik
@AlexanderShustik
В wp есть такой класс Walker_Nav_Menu. Он отвечает за построение меню. Тебе его нужно расширить своим классом, в котором ты указываешь что, если элемент имеет детей, то добавить к нему css класс выпадающего меню.
Ответ написан
Комментировать
trampick
@trampick
Веб-разработчик
По умолчанию у wordpress меню генерируется в таком же виде, но со своими классами. Ты правильно сделал, что добавил подпункты в меню через админку. Тебе нужно посмотреть css файл и поменять там что то. Что именно не скажу, так как не вижу сайта.
wp_nav_menu()
В wordpress есть такая функция. Посмотри документацию по ней. Там куча входных параметров, которыми можно поменять шаблон вывода меню. Эту функцию надо добавить тебе в шаблон, где выводится меню(скорее всего header.php файл). Другой вариант не парится, а просто вставить готовый html код меню в этот же файл.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы