Как изменить подстановку ссылки меню из «совпадает» на «содержит»
Есть главное меню, например, из двух пунктов. А подпунктов в меню нет.
Однако, есть страницы, которые являются дочерними по отношению к этим двум пунктам. Например, ссылки http://xxx.ru/111 и http://xxx.ru/222 -- это пункты главного меню.
Надо сделать так, чтобы когда пользователь находится на дочерней странице первого пункта, например на http://xxx.ru/111/zzz, подсвечивался первый пункт меню и, соответственно, если пользователь на http://xxx.ru/222/qqq, подсвечивался второй пункт меню.
Как это сделать?
wp_nav_menu
Пример 8 или 10.
Новичку не понятно, что надо сделать, чтобы заработало. Прописал в функции темы, как в примере 10 -- не работает. Добавил в функцию темы код
и wp_nav_menu( array( вообще wp перестал грузиться. Удалил из админки хостинга, стал грузиться вордпресс, но задача с подсветкой не решена.
Ситуация в следующем. На каждой странице на которой отображается меню вы можете обратиться к массиву объектов этого меню, где каждый объект это пункт меню. Там содержится вся информация вплоть до того кто кому что должен. Есть класс Walker, который на основании этого массива формирует html который отображается на странице. Вам надо создать свой класс который будет наследовать Walker и слегка модифицировать. Сделать проверку и в случае успеха добавлять класс .active например.
Возможно это и не самое простое решение. Может можно как то через хук назначить класс.Читайте, разбираейтесь.
https://codex.wordpress.org/Class_Reference/Walker
http://belbiy.com/bg/wp_nav_menu-and-custom-walker-class/
https://truemisha.ru/blog/wordpress/nav-menu-walkers.html
http://stackoverflow.com/questions/20626265/wordpress-maintain-active-class-on-parent-menu-item
http://stackoverflow.com/questions/17458373/in-wordpress-how-to-add-an-active-class-to-a-parent-nav-link-if-any-of-its-ch
http://wordpress.stackexchange.com/questions/40753/add-parent-class-to-parent-menu-items
http://wordpress.stackexchange.com/questions/112955/add-class-to-active-element-and-its-parent-in-nav-menu
http://wordpress.stackexchange.com/questions/105572/how-to-add-a-class-name-to-the-ancestor-li-of-a-post
Есть же специальные классы. Не надо изобретать что-то - все готово, только найди нужный класс и стилизуй меню через css.
В частности тебе скорее всего подойдут классы:
.current-menu-ancestor
или.current_page_ancestor
смотри в коде, когда зайдешь на дочернюю страницу, какие уникальные классы есть у родительского пункта, а они есть! И на основе их стилизуй родителя.