Как задать цвет текста у пункта меню, соответствующего текущей странице сайта, на которой находится пользователь?

Добрый день, форум! <br/> <br/> Уважаемые коллеги, подскажите, пожалуйста: как корректно сделать так, чтобы в меню на странице прайс‑листа моего сайта (<a href="https://prodvizeniye.ru/price_list_management_consulting/" rel="nofollow">https://prodvizeniye.ru/price_list_management_cons...</a>) цвет шрифта пункта меню автоматически менялся в соответствии со страницей, на которой находится пользователь, для облегчения навигации? <br/> <br/> Сайт на WordPress, используется конструктор Elementor. <br/> <br/> Пункты меню: <br/> - управленческий консалтинг <br/> - стратегическое управление <br/> - построение отдела продаж <br/> - построение региональных продаж <br/> - стратегический маркетинг <br/> - систематизация бизнеса <br/> - тренинги и обучение <br/> - hr-менеджмент <br/> <br/> Варианты динамических тегов JetEngine (Crocoblock), которые доступны для списка: <br/> - Кастомное поле <br/> - Term Field <br/> - Option <br/> - User Field <br/> - Dynamic Function <br/> - Query Results Count <br/> <br/> Доступные настройки самого блока меню: <br/> 1. CSS ID <br/> 2. CSS классы <br/> 3. Пользовательские CSS (вставка собственного кода) <br/> 4. Изменение атрибутов (ключ — значение) <br/> <br/> Учитывая перечисленные возможности, какой способ будет самым правильным и простым для реализации изменения цвета шрифта активного пункта меню? Заранее спасибо!
  • 25 июня 2026 г. 9:00
Ответы на вопрос 3
Коротко — самый простой и «правильный» способ: опереться на стандартные CSS‑классы, которые WordPress / Elementor сами ставят у активного пункта меню, и задать им нужный цвет через CSS. Никаких сложных динамических тегов в большинстве случаев не нужно.

Что именно сделать (варианты):

1) Если вы используете стандартное меню WordPress или виджет Nav Menu в Elementor
- WP сам добавляет классы current-menu-item / current_page_item / current-menu-ancestor и т.д.
- Elementor Nav Menu добавляет свои классы (например elementor-item-active).

Пример CSS (вставьте в Appearance → Customize → Additional CSS или в Advanced → Custom CSS у виджета меню (Elementor Pro)):
/* для WP меню */
.menu .current-menu-item > a,
.menu .current_page_item > a { color: #ff0000; }

/* для виджета Elementor */
.elementor-nav-menu .elementor-item.elementor-item-active { color: #ff0000; }

(Если нужно — добавьте !important: color: #ff0000 !important;)

2) Если меню сделано вручную через JetEngine Listing (список ссылок), и WordPress не ставит классы активного пункта
- самый простой вариант — добавить небольшой JS, который сравнит href ссылки и текущий URL и добавит класс active, затем стилизовать этот класс через CSS.

Пример JS (вставьте в footer через HTML‑блок или в кастомный JS):
<script>
document.addEventListener('DOMContentLoaded', function(){
  document.querySelectorAll('.jet-listing .menu-link').forEach(function(a){
    // Сравнение может быть гибче, в зависимости от формата ссылок
    if (a.href === location.href || a.getAttribute('href') === location.pathname) {
      a.classList.add('active');
    }
  });
});
</script>

CSS для этого:
.jet-listing .menu-link.active { color: #ff0000; }

3) Альтернативы (необязательно)
- Можно прописать правило, зависящее от body класса страницы: body.page-id-123 .main-menu a[href="/price_list_management_consulting/"] { color: ... }
- Можно вывести класс «active» серверно через Dynamic Function / кастомное поле, но это сложнее и чаще не нужно.

Рекомендация
- Если возможно — используйте стандартное меню WP / виджет Nav Menu Elementor и простое CSS правило (вариант 1). Это самый быстрый и надежный путь.
- Если меню собирается динамически в Listing Grid JetEngine — используйте короткий JS (вариант 2) или добавьте логику в динамический вывод, чтобы печатать класс active.

Могу помочь точнее, если пришлёте HTML одного пункта меню (через инспектор) или скажете, каким именно виджетом/способом вы создаёте меню (WP menu, Elementor Nav Menu, JetEngine Listing и т.д.).
<pre><code class="javascript">// HEADER 
const urlPath = window.location.pathname
document.querySelectorAll('.header__menu a').forEach(a =&gt; {
  if (a.href.endsWith(urlPath)) {
      a.classList.add('header__menu-item-active')
  }
})</code></pre> <br/> <br/> проходишься в цикле по ссылкам в header, и добавляешь нужной ссылке класс <br/> пример схематический, естественно надо название классов на свои поменять
Насколько я вижу класс li  активной страницы соответствует current-menu-ancestor <br/> Т,е. как-то так <br/> <pre><code>.menu-item.menu-item-type-custom.menu-item-object-custom.current-menu-ancestor.current-menu-parent.menu-item-has-children{
	background: red;
}</code></pre>
Похожие вопросы