WordPress.org

Make WordPress Core

Changeset 14900


Ignore:
Timestamp:
05/25/10 18:54:42 (4 years ago)
Author:
ryan
Message:

Back compat menu classes. see #12812 #13379

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/nav-menu-template.php

    r14891 r14900  
    7171        $classes = $value = ''; 
    7272 
    73         $classes = array( 'menu-item', 'menu-item-type-' . $item->type, $item->classes ); 
     73        $classes = array( 'menu-item', 'menu-item-type-' . $item->type ); 
     74        if ( !empty($item->classes) ) 
     75            $classes = array_merge($classes, explode(' ', $item->classes) ); 
    7476 
    7577        if ( 'custom' != $item->type ) { 
    7678            $classes[] = 'menu-item-object-' . $item->object; 
    7779            $classes[] = 'menu-item-object-' . $item->type . '-' . $item->object_id; 
     80            if ( 'post_type' == $item->type && 'page' == $item->object ) { 
     81                // Back compat classes for pages to match wp_page_menu() 
     82                $classes[] = 'page_item'; 
     83                $classes[] = 'page-item-' . $item->object_id; 
     84                if ( !empty($item->classes) ) { 
     85                    if ( in_array('current-menu-item', $classes) ) 
     86                        $classes[] = 'current_page_item'; 
     87                    if ( in_array('current-menu-parent', $classes) ) 
     88                        $classes[] = 'current_page_parent'; 
     89                    if ( in_array('current-menu-ancestor', $classes) ) 
     90                        $classes[] = 'current_page_ancestor'; 
     91                } 
     92            } 
     93        } elseif ( 'custom' == $item->type && in_array('current-menu-item', $classes) && in_array('menu-item-home', $classes) ) { 
     94            // Back compat for home limk to match wp_page_menu() 
     95            $classes[] = 'current_page_item'; 
    7896        } 
    7997 
     
    304322    $possible_object_parents = array_filter( $possible_object_parents ); 
    305323 
    306     foreach( (array) $menu_items as $key => $menu_item ) { 
     324    foreach ( (array) $menu_items as $key => $menu_item ) { 
    307325        // if the menu item corresponds to a taxonomy term for the currently-queried non-hierarchical post object 
    308326        if ( $wp_query->is_singular && 'taxonomy' == $menu_item->type && in_array( $menu_item->object_id, $possible_object_parents ) ) { 
     
    330348            if ( $item_url == $current_url ) { 
    331349                $menu_items[$key]->classes = trim( $menu_item->classes . ' ' . 'current-menu-item' ); 
     350                if ( untrailingslashit($current_url) == home_url() ) 
     351                    $menu_items[$key]->classes .= ' menu-item-home'; 
    332352                $active_parent_item_ids[] = (int) $menu_item->menu_item_parent; 
    333353                $active_parent_object_ids[] = (int) $menu_item->post_parent; 
     
    341361 
    342362    // set parent's class 
    343     foreach( (array) $menu_items as $key => $parent_item ) { 
    344         if ( 'post_type' == $parent_item->type && is_post_type_hierarchical( $queried_object->post_type ) && in_array( $parent_item->object_id, $queried_object->ancestors ) )  
     363    foreach ( (array) $menu_items as $key => $parent_item ) { 
     364        if ( 'post_type' == $parent_item->type && is_post_type_hierarchical( $queried_object->post_type ) && in_array( $parent_item->object_id, $queried_object->ancestors ) ) 
    345365            $menu_items[$key]->classes = trim( $parent_item->classes . ' ' . 'current-' . $queried_object->post_type . '-ancestor' ); 
    346366        if ( in_array( $parent_item->db_id, $active_parent_item_ids ) ) 
Note: See TracChangeset for help on using the changeset viewer.