Поддержка Проблемы и решения Как пробросить текущий href в фильтре nav_menu_link_attributes

  • Решено ddashkevich

    (@ddashkevich)


    Привет, начал разбираться в вп и появились вопросы на которые не могу пока найти ответ, памагити)

    есть такой фильтр, который помогает мне не переделывать верстку и записывать нужные бэм классы тегу <a> в меню лендинга. Но тут есть проблема, что атрибут href не выводится при использовании этого фильтра и я не знаю как его получить:((
    Меню в ВП представляет собой произвольные ссылки, в url которых записаны якоря типа #section

    function filter_menu_link_class($classes, $item, $args, $depth) {
        if($args->theme_location ==='top') { // - need check menu location if have 2 menu with different structure
            $atts['class'] = 'nav-menu__link';
            //$atts['href'] = $atts['href'];  -- нужно как-то определить href значением записанным в url произвольной ссылки, что бы можно было переходить используя якоря по секциям лендинга, т.к. тег <a> получает только класс
        } 
        return $atts;
    }
    add_filter('nav_menu_link_attributes', 'filter_menu_link_class', 10, 4);
Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Почему у вас первый аргумент функции — $classes вместо $atts?

    Если заменить на $atts, то в $atts['href'] будет искомый якорь #section.

    огромное спасибо!)) все заработало! Пока учусь, сори если вопросы слишком наивные)

    • Ответ изменён 1 месяц назад пользователем ddashkevich.
Просмотр 2 ответов — с 1 по 2 (всего 2)