Изменение тегов вывода меню в WordPress

201
07 августа 2018, 14:30

Делаю на сайте вывод меню через wp_nav_menu. Сайт на WordPress. WP автоматом выводит меню со своими тегами ul и li, и своими классами. Мне они не подходят, подскажите как можно либо к этим тегам прикрутить свои классы, либо вместо этих тегов вывести свои. Я пробовал заменить теги своими - добился того что нет возможности передать класс тегу . Код меню в оригинале:

<nav class="nav-menu">
            <a href="#" class="nav-menu--link active-link">Главная</a>
            <a href="catalog.html" class="nav-menu--link">Продукция</a>
            <a href="about.html" class="nav-menu--link">О компании</a>
            <a href="contacts.html" class="nav-menu--link">Контакты</a>
        </nav>

и то что я намудрил в функции:

<nav class="nav-menu">
        <?php
        wp_nav_menu( array(
            'theme_location' => 'top',
            'menu_class' => 'nav-menu',
            'container' => 'false',
            'items_wrap' =>'<a class="nav-menu--link active-link"> </a>',
        ) );
        ?>
        </nav>

Ссылка на многострадальный сайт: http://kaauto.volodysm.beget.tech/

Судя по тому, что я читал о механизме вывода меню - мне нужно будет писать свой Walker, глянул его исходник - понял что это плохая идея. Подскажите, пожалуйста, варианты решения, второй день уже сижу...

Answer 1

Самый простой способ - задайте классы прямо в админке:

Не надо уходить от структуры меню WordPress - через ul и li. Это правильное построение меню, особенно когда есть несколько уровней вложенности. Всё, что вы хотите, можно сделать классами.

Answer 2

Функция wp_get_nav_menu_items() (документация https://developer.wordpress.org/reference/functions/wp_get_nav_menu_items/) позволяет получить все элементы указанного меню и потом работать с ними так, как вам будет удобно

READ ALSO
Триггер на комментарии в facebook api

Триггер на комментарии в facebook api

Как можно отследить новые комментарии в facebook? Те

219
Как обновить блок?

Как обновить блок?

Допустим есть файл (user_panel)В случае если есть кука, подгружает панель, но если нет

191
Магия модели Laravel

Магия модели Laravel

Есть модель Post

217