Вы можете использовать nav_menu_css_class в Wordpress для достижения результата вы после этого. Используя этот крючок, вы можете изменить массив классов CSS, которые можно применить к меню.
add_filter('nav_menu_css_class', 'add_parent_url_menu_class', 10, 2);
function add_parent_url_menu_class($classes = array(), $item = false) {
// Get current URL
$current_url = current_url();
// Get homepage URL
$homepage_url = trailingslashit(get_bloginfo('url'));
// Exclude 404 and homepage
if(is_404() or $item->url == $homepage_url) return $classes;
if (strstr($current_url, $item->url)) {
// Add the 'parent_url' class
$classes[] = 'parent_url';
}
return $classes;
}
function current_url() {
// Protocol
$url = ('on' == $_SERVER['HTTPS']) ? 'https://' : 'http://';
$url .= $_SERVER['SERVER_NAME'];
// Port
$url .= ('80' == $_SERVER['SERVER_PORT']) ? '' : ':' . $_SERVER['SERVER_PORT'];
$url .= $_SERVER['REQUEST_URI'];
return trailingslashit($url);
}
Этот метод игнорирует 404 страниц или корень сайта, но добавит класс к пункту меню, если текущий URL соответствует URL пункта меню.
Полный кредит для этого кода: http://www.rarescosma.com/2010/11/add-a-class-to-wp_nav_menu-items-with-urls-included-in-the-current-url/
Япом;) прибил его –
Вы можете избежать функции current_url полностью изменив $ current_url на: $ current_url = trailingslashit (get_site_url (нуль, $ _SERVER [ 'REQUEST_URI'])); –