WordPress свое двухуровневое меню

209
30 января 2018, 11:01

Есть проблема:

Нестандартное меню.

Есть простые ссылки, а есть dropdown

<div class="navbar w-nav" data-animation="default" data-collapse="medium" data-duration="400">
        <div class="nav-container w-container">
          <nav class="nav-menu w-nav-menu" role="navigation">
          <a class="nl w-nav-link" href="/newdiz/">Главная</a>
          <a class="nl w-nav-link" href="/newdiz/news/">Новости</a>
                    <!-- dropdown -->
            <div class="dd w-dropdown" data-delay="0">
              <div class="nl w-dropdown-toggle">
                <div class="icon w-icon-dropdown-toggle"></div>
                <div class="dd-txt">О центре</div>
              </div>
              <nav class="dropdown-list w-dropdown-list">
              <a class="dropdown-link w-dropdown-link" href="/newdiz/timetable/">Расписание занятий</a>
              <a class="dropdown-link w-dropdown-link" href="/newdiz/busyness/">График занятости</a>
              <a class="dropdown-link w-dropdown-link" href="/newdiz/course-main/">Направления</a>
            </div>
            <!-- !dropdown -->

            <a class="nl w-nav-link" href="/newdiz/affiliates/">Филиалы</a>
                        <!-- dropdown -->
            <div class="dd w-dropdown" data-delay="0">
              <div class="competition nl w-dropdown-toggle">
                <div class="icon w-icon-dropdown-toggle"></div>
                <div class="dd-txt">Соревнования / Competitions</div>
              </div>
              <nav class="dropdown-list w-dropdown-list">
              <a class="dropdown-link w-dropdown-link" href="/newdiz/rank/">Рейтинги</a>
              <a class="dropdown-link w-dropdown-link" href="/newdiz/schedules-all/">График соревнований</a>
              <a class="dropdown-link w-dropdown-link" href="/newdiz/results/">Итоги</a>
                        <!-- !dropdown -->
            </div><a class="nl w-nav-link" href="/newdiz/gallerys/">Галерея</a>
            <a class="nl w-nav-link" href="/newdiz/contacts/">Контакты</a>
            <a class="nl w-nav-link" href="/newdiz/testimonialsclients/">Отзывы</a></nav>
          <div class="menu-button w-nav-button" data-ix="scale">
            <div class="text-block-19">Меню</div>
          </div>
        </div>
      </div>

Вывожу его через <a></a> без проблем

    <?php
if( $menu_items = wp_get_nav_menu_items('1') ) { // "Меню для шапки" - это название моего меню. Вы можете также использовать ID или ярлык
    $menu_list = '';
    foreach ( (array) $menu_items as $key => $menu_item ) {
        $title = $menu_item->title; // заголовок элемента меню (анкор ссылки)
        $idmen = $menu_item->ID; // id элемента меню 
        $url = $menu_item->url; // URL ссылки
        $parentyn = $menu_item->menu_item_parent; // внутренняя
        $menu_list .= '<a href="' . $url . '" class="nl w-nav-link">' . $title . ' '. $parentyn  .' </a>';
    }
    echo $menu_list;
}
        ?>

Но нужно совсем иное меню.

Вопрос - есть ли какая функция, чтобы узнать, есть ли у пункта меню дочерние подпункты?

Answer 1

Выводите меню не своим кодом, а через wp_nav_menu(). Сформированное меню будет иметь класс menu-item-has-children у тех элементов, которые содержат подменю.

Используемая вами функция wp_get_nav_menu_items() не возвращает никаких признаков наличия подменю у элемента, только у его дочерних элементов menu_item_parent не равен нулю.

READ ALSO
checkSignIn() функция JavaScript. Проверка статуса login/admin/guest.

checkSignIn() функция JavaScript. Проверка статуса login/admin/guest.

Добрый день, уважаемые знатокиЕсть такая задача: Существует сайт (PHP backend, front - JS) На сайте существует отдельная страница с формой логина и формой...

248
Импорт *.csv файла в MySQL

Импорт *.csv файла в MySQL

Ошибка: "Access denied for user

182