pandaWarrior
@pandaWarrior
фронтендер

Как сделать меню вордпресс с якорями без применения к ним «current-menu-item»?

Приветствую!
Проблема в следующем. Необходимо сделать меню ВП, где были бы якоря, которые ведут к определенному блоку страницы.
Сайт многостраничный, следовательно, ссылка якоря нуждается в адресе самой страницы и выглядит как http://сайт.ру/#contact и т.п.
В чем проблема. Когда я нахожусь на странице http://сайт.ру/, пункты меню с якорями тоже выделяются как активные, это плохо и не нужно.
Что делать?
  • Вопрос задан
  • 3856 просмотров
Пригласить эксперта
Ответы на вопрос 2
chigoe
@chigoe
Design, front-end, wordpress
Если я правильно понял, то можно так попробовать:
jsfiddle.net/cd9gL5b6/
Ответ написан
Попробуй такую схему (писал по памяти без проверки, так что может быть ошибка, но направление думаю верное)
functions.php
add_filter('wp_nav_menu', function($nav_menu){
	$result = preg_match_all('#<li(?:.*)><a href="[\#]{1}(.*)">(?:.*)</a></li>#', $nav_menu, $matches);
	if($result){
		foreach($matches[0] as $match){
			$link = $match;
			$match = str_replace(array('current-menu-item', 'current-category-ancestor'), '', $match);
			$nav_menu = str_replace($link, $match, $nav_menu);
		}		
	}
	return $nav_menu;
});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы