Варианты, конечно же, есть. Например,
Blade от Laravel. Или
Twig. И еще несколько есть, кажется даже порт Smarty когда-то на глаза попадался. Но! Если вы с родной документацией не разобрались и не вкурили как кастомизировать меню (что на самом деле очень просто), то уверяю вас - в документации этих надстроек вы запутаетесь и увязнете еще глубже. Просто берите родной WordPress Codex и читайте, читайте, читайте.
Например, упомянутая вами задача добавления своего класса к активному пункту меню. Во-первых, он там уже есть, по умолчанию. Это классы
.current-cat или
.current-page-item или
.current-menu-item (текущая рубрика, текущая страница или другой текущий элемент меню). Во-вторых, если хотите добавить свой, чтобы назывался именно
.active - пожалуйста:
add_filter('nav_menu_css_class' , 'special_nav_class' , 10 , 2);
function special_nav_class($classes, $item){
if( in_array('current-menu-item', $classes) ){
$classes[] = 'active ';
}
return $classes;
}
Но это, честно говоря, бред. Так как нужный вам класс уже там есть. Вам просто нужно почитать еще вот это:
www.wpbeginner.com/wp-themes/default-wordpress-gen...