Make WordPress Core

Ticket #18584: nav_menu.diff

File nav_menu.diff, 2.2 KB (added by ddean, 13 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 .'>';