Все мои навигационные ссылки выделены как активные в теме Neve — WordPress

#html #css #wordpress #wordpress-theming

#HTML #css #wordpress #wordpress-тематизация

Вопрос:

Я использую тему Neve для создания пользовательской темы WP. Это одностраничник.

Таким образом, все навигационные ссылки в меню являются пользовательскими ссылками, ссылающимися на раздел на домашней странице.

Сначала я попытался сделать их относительными ссылками, например, #service, но затем мобильное меню не закрывалось после нажатия на них. Немного почитав в Интернете, я нашел решение сделать их ссылками aboslute, например mydomain.com/#service

Теперь мое мобильное меню закрывается, но все элементы навигации помечены как активные, имеющие этот класс

‘current-menu-item current_page_item menu-item-home’

Как мне найти обходной путь или каков вообще наилучший способ справиться с этим, чтобы была активна только домашняя ссылка, а не остальные?

Заранее спасибо.

-Gerd

Комментарии:

1. Если это onepager, просто добавьте пользовательский класс css к домашней ссылке и добавьте к нему активный стиль, а затем удалите все стили из .current-menu-item

Ответ №1:

Прежде всего, спасибо Нико за то, что указал мне правильное направление.

Я хотел опубликовать это здесь более подробно для всех, у кого может возникнуть подобная проблема.

  1. Я очистил все форматирование из класса WP, который был назначен для всех навигационных ссылок.
  2. Я создал свой собственный активный класс под названием «my-active»
  3. Я написал следующий код jQuery, чтобы добавить его при нажатии на элемент навигации и убрать его из предыдущего элемента навигации (это может быть не идеальный код, поскольку я не профессиональный программист, но он работает):
     (function ($) {
       $(document).ready(function () {
    
    
       $('nav ul li:nth-child(1) a').addClass('my-active');
    
       $('nav ul li a').on('click', function(){
    
          $('nav ul li a').removeClass('my-active');
          $(this).addClass('my-active');
    });
    
    });
     

    })(jQuery);