• Доброго времени суток, столкнулся со следующей проблемой. В документации, как, собственно, и в оригинальном файле вордпресса nav_menu_template.php указано, что за обертку ul отвечает ‘container’, и это работает. Но вот со следующими настройками начинаются проблемы. Вордпресс не реагирует на добавление классов и id в
    ‘container_class’ => ‘some_class’,
    ‘container_id’ => ‘some_id’,
    Но при этом, он добавляет их если вписать их в
    ‘menu_class’ => ‘some_class’,
    ‘menu_id’ => ‘some_id’,
    Проблема в том, что menu_class и menu_id отвечает за class и id списка ul, а вместо этого добавляет class и id в div, в котором находится этот ul, из-за чего на сам ul не получается никак повлиять.
    Вот кусок комментария из оригинального файла
    $menu Desired menu. Accepts a menu ID, slug, name, or object. Default empty.
    $menu_class CSS class to use for the ul element which forms the menu. Default ‘menu’.
    $menu_id The ID that is applied to the ul element which forms the menu.
    $container Whether to wrap the ul, and what to wrap it with. Default ‘div’.
    $container_class Class that is applied to the container. Default ‘menu-{menu slug}-container’.
    $container_id The ID that is applied to the container. Default empty.
    В чем может быть проблема? Как ее решить?

    • Тема изменена 5 лет, 5 месяцев назад пользователем aleks1krav.
Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Попробовал. Вроде все правильно работает.
    Код такой:

    
    
    <?php
    
    $arr = array(
        'theme_location' => 'menu-1', // должно быть зарегистрировано
        'container_class' => 'my-container-class',
        'container_id' => 'my-container-id',
        'menu_class' => 'my-menu-class',
        'menu_id' => 'my-menu-id'
    );
    
    wp_nav_menu( $arr );
    
    ?>
    
    

    Вывод:

    
    
    <div id="my-container-id" class="my-container-class">
      <ul id="my-menu-id" class="my-menu-class">
        <li id="menu-item-7" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7"><a href="#">Пункт 1</a></li>
        <li id="menu-item-8" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-8"><a href="#">Пункт 2</a></li>
        <li id="menu-item-9" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-9"><a href="#">Пункт 3</a></li>
      </ul>
    </div>
    
    

    @dallynx Спасибо большое за ваш ответ, я уже в курсе что код должен работать, и временно я нашел решение, переустановив вордпресс, в этот раз выбрал английскую версию и все работает как надо. Однако, хотелось бы понять почему в русской версии работает так как я описал в посте. В общем-то мне не принципиально с какой версией работать, но в целях самообразования хотелось бы понять в каком месте может быть ошибка. Может в каком-то файле ядра вордпресс какая-то ошибка? Попробую создать переменную как в вашем примере, и передать ее в качестве аргумента функции, может это изменит положение дел.

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Однако, хотелось бы понять почему в русской версии работает так как я описал в посте.

    Не удалось воспроизвести, все параметры работают корректно и в русской версии.

    В чем может быть проблема? Как ее решить?

    В общем случае вывод меню и его классов зависит от того, каким кодом этом меню создаётся и выводится в теме оформления.

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

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Тема «Ошибка в документации?» закрыта для новых ответов.