Поддержка Темы и шаблоны Вывод своего меню

  • Добрый день!

    Я создаю собственную тему и столкнулся с некоторыми трудностями в меню.

    Дело в том, что мне нужно выводить не только пункты меню, но и подпункты. А эти самые подпункты, для каждой секции меню имеют свой класс. Вот сокращенная часть меню на 3 пункта с подпунктами, которую хочу заставить выводить WordPress:

    <div class="menu">
            	<div class="menu-block1">
                    <ul>
                        <li><a href="#">Пункт 1</a></li>
    		    <li><a href="#">Пункт 2</a>
                        	<ul class="men1">
                                <li><a href="#">Под меню 1</a></li>
                                <li><a href="#">Под меню 2</a></li>
                                <li><a href="#">Под меню 3</a></li>
                                <li><a href="#">Под меню 4</a></li>
                            </ul>
                        </li>
                        <li><a href="#">Пункт меню 3</a>
                        	<ul class="men2">
                                <li><a href="#">Под меню 1</a></li>
                                <li><a href="#">Под меню 2</a></li>
                                <li><a href="#">Под меню 3</a></li>
                                <li><a href="#">Под меню 4</a></li>
                            </ul>
                        </li>
    </div>

    Вопрос — как это всё выводить в WordPress?

    Я включил в своей теме возможность создания меню. Всё работает. Но. При вставке меню — WordPress прописывает свои классы в верстку.

    Вот для наглядности пишем:

    <?php Array(
             'menu_class'=>'menu',
             'theme_location'=>'top',
             'after'=>' /'
             );
    wp_nav_menu($args);
    ?>

    А WordPress нам сгенерирует вот что:

    <div class='<классы WP>'>
        <ul class='menu'>
            <li><a class='<классы WP>' href="#">Анкор ссылки</a> /</li>
            <li><a class='<классы WP>' href="#">Анкор ссылки</a> /</li>
            <li><a class='<классы WP>' href="#">Анкор ссылки</a> /</li>
        </ul>
    </div>

    Как видим, совсем отличается от моего кода выше. Допустим, можно грубо влезть в код WordPress и выставить свои классы. Но тут тоже будет проблема. Посмотрите на мой пример. Для второго пункта меню «<ul class=»men1″>» сработает для подпунктов. Но для 3 пункта меню, там совсем другой «<ul class=»men2″>», который конечно же WordPress будет выводить как «<ul class=»men1″>», после грубого вторжения в код движка. Как быть с остальными пунктами и подпунктами меню? Или всё это решается как-то ещё проще? Может есть какие-то плагины? Подскажите пожалуйста.

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Или всё это решается как-то ещё проще?

    Можно использовать классы WP, от которых вы почему-то стремитесь уйти. Например, селектор ul.men1 в style.css можно будет заменить селектором вида li.page-item-123 ul.

    Даже если использовать классы WordPress. Как можно сделать, что бы 3 пункт меню для подпунктов, имел свой собственный класс, а не такой, который был у второго пункта меню. А ведь, дальше ещё в планах 4 и 5 пункт, где тоже будет свой класс для подменю.

    Всем спасибо. Проблема решена. Через wp_nav_menu. Он там вообще, чуть ли не к каждому пункту свой стиль делает. А классы буду использовать WordPress, да.

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Тема «Вывод своего меню» закрыта для новых ответов.