public function cssClasses($classes, $item) { $slug = sanitize_title($item->title); // Fix core `active` behavior for custom post types if ($this->cpt) { $classes = str_replace('current_page_parent', '', $classes); if (Utils\url_compare($this->archive, $item->url)) { $classes[] = 'is-active'; } } $classes = preg_replace('/(current(-menu-|[-_]page[-_])(item))/', 'is-current is-active', $classes); $classes = preg_replace('/(current(-menu-|[-_]page[-_])(parent|ancestor))/', 'is-active', $classes); $classes = preg_replace('/^((menu|page)[-_\\w+]+)+/', '', $classes); // Re-add core `menu-item` class $classes[] = 'menu-item'; // Re-add core `menu-item-has-children` class on parent elements if ($item->is_subitem) { $classes[] = 'menu-item-has-children has-children'; } // Add `menu-<slug>` class $classes[] = 'menu-' . $slug; $classes = array_unique($classes); $classes = array_map('trim', $classes); return array_filter($classes); }
public function cssClasses($classes, $item) { $slug = sanitize_title($item->title); if ($this->cpt) { $classes = str_replace('current_page_parent', '', $classes); if (Utils\url_compare($this->archive, $item->url)) { $classes[] = 'active'; } } $classes = preg_replace('/(current(-menu-|[-_]page[-_])(item|parent|ancestor))/', 'active', $classes); $classes = preg_replace('/^((menu|page)[-_\\w+]+)+/', '', $classes); $classes[] = 'menu-' . $slug; $classes = array_unique($classes); return array_filter($classes, 'Roots\\Soil\\Utils\\is_element_empty'); }
public function cssClasses($classes, $item, $args) { $slug = sanitize_title($item->title); if ($this->cpt) { $classes = str_replace('current_page_parent', '', $classes); if (Utils\url_compare($this->archive, $item->url)) { $classes[] = 'active'; } } if ($args->walker->has_children) { $classes[] = 'dropdown'; } $classes = preg_replace('/(current(-menu-|[-_]page[-_])(item|parent|ancestor))/', 'active', $classes); $classes = preg_replace('/^((menu|page)[-_\\w+]+)+/', '', $classes); $classes[] = 'menu-' . $slug; $classes = array_unique($classes); return array_filter($classes, function ($element) { $element = trim($element); return !empty($element); }); }