Задать вопрос
SpectreZ
@SpectreZ

Почему пункт меню в Wordpress не помечается как активный?

Добрый день.

В главном меню сайта на wordpress пункты меню, ведущие на архив записей не помечаются как активные при просмотре страницы отдельной записи. Как можно настроить такую возможность?
Ссылка на страницу записи имеет вид domain.com/services/service-1
  • Вопрос задан
  • 192 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
wppanda5
@wppanda5 Куратор тега WordPress
WordPress Mедведь
СмОтрите исходный код меню, вИдите в нем у активного пункта меню класс, например такой - current_page_item, покрываете матом ленивую жопу создателя темы который не прописал для него стили. Прописываете их сами.
Например так.
.current_page_item > a{ color: red}
Рrofit!!!
Ответ написан
Комментировать
SpectreZ
@SpectreZ Автор вопроса
Да, проблема была в шаблоне, но иная.
По умолчанию в классе обхода пунктов меню, расширяющем класс Walker_Nav_menu, условие определения пункта как активного было таким:
if(in_array('current-menu-item', $item->classes)) ...

Пришлось его расширить, добавив дополнительные проверки. Не знаю, насколько это правильно, возможно в WP должны быть такие возможности по умолчанию. Я добавил такие условия:
(strpos($item->url, $post->post_name) > 0) || // для стандартных страниц
(strpos($item->url, $post->post_type) > 0) || // для записей пользовательских типов
(get_the_category($post)[0]->name == $item->title) // для стандартных записей рубрики
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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