Коротко — самый простой и «правильный» способ: опереться на стандартные 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 и т.д.).