WordPress.org

Make WordPress Core

Ticket #18584: nav_menu.diff

File nav_menu.diff, 2.2 KB (added by ddean, 3 years ago)

nav menu hooks proposal

  • wp-admin/includes/nav-menu.php

     
    171171                                                <span class="description"><?php _e('The description will be displayed in the menu if the current theme supports it.'); ?></span> 
    172172                                        </label> 
    173173                                </p> 
    174  
     174                                 
     175                                <?php do_action( 'wp_nav_menu_custom_fields', $item, $item_id ); ?> 
     176                                 
    175177                                <div class="menu-item-actions description-wide submitbox"> 
    176178                                        <?php if( 'custom' != $item->type && $original_title !== false ) : ?> 
    177179                                                <p class="link-to-original"> 
    178180                                                        <?php printf( __('Original: %s'), '<a href="' . esc_attr( $item->url ) . '">' . esc_html( $original_title ) . '</a>' ); ?> 
    179181                                                </p> 
    180182                                        <?php endif; ?> 
     183                                         
     184                                        <?php do_action( 'wp_nav_menu_links', $item, $item_id ); ?> 
     185                                         
    181186                                        <a class="item-delete submitdelete deletion" id="delete-<?php echo $item_id; ?>" href="<?php 
    182187                                        echo wp_nonce_url( 
    183188                                                add_query_arg( 
     
    10251030                                'menu-item-classes' => ( isset( $_item_object_data['menu-item-classes'] ) ? $_item_object_data['menu-item-classes'] : '' ), 
    10261031                                'menu-item-xfn' => ( isset( $_item_object_data['menu-item-xfn'] ) ? $_item_object_data['menu-item-xfn'] : '' ), 
    10271032                        ); 
    1028  
     1033                         
     1034                        $args = apply_filters( 'wp_save_nav_menu_args', $args, $menu_id, $_item_object_data ); 
     1035                         
    10291036                        $items_saved[] = wp_update_nav_menu_item( $menu_id, $_actual_db_id, $args ); 
    10301037 
    10311038                } 
  • wp-includes/nav-menu-template.php

     
    8585                $attributes .= ! empty( $item->target )     ? ' target="' . esc_attr( $item->target     ) .'"' : ''; 
    8686                $attributes .= ! empty( $item->xfn )        ? ' rel="'    . esc_attr( $item->xfn        ) .'"' : ''; 
    8787                $attributes .= ! empty( $item->url )        ? ' href="'   . esc_attr( $item->url        ) .'"' : ''; 
     88                 
     89                $attributes = apply_filters( 'nav_menu_item_attributes', $attributes, $item ); 
    8890 
    8991                $item_output = $args->before; 
    9092                $item_output .= '<a'. $attributes .'>';