Changeset 13344
- Timestamp:
- 02/23/2010 10:06:21 PM (15 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-admin/custom-navigation.php
r13342 r13344 30 30 require_once (ABSPATH . WPINC . '/custom-navigation.php'); 31 31 32 function wp_ custom_nav_reset() {32 function wp_reset_nav_menu() { 33 33 wp_custom_navigation_setup(true); 34 34 … … 78 78 79 79 if ( $insert_menu_name != '' ) { 80 $ existing_term = get_term_by( 'name', $insert_menu_name, 'nav_menu');81 if ( $existing_term) {82 $messagesdiv = '<div id="message" class="error fade below-h2"><p>' . esc_html( sprintf( e__('A menu named "%s" already exists; please try another name.'), $existing_term->name) ) . '</p></div>';80 $menu = wp_create_nav_menu($insert_menu_name); 81 if ( is_wp_error($menu) ) { 82 $messagesdiv = '<div id="message" class="error fade below-h2"><p>' . esc_html( $menu->get_error_message() ) . '</p></div>'; 83 83 } else { 84 $term = wp_insert_term( $insert_menu_name, 'nav_menu' ); 85 if ( !is_wp_error($term) ) { 86 $term = get_term($term['term_id'], 'nav_menu'); 87 $custom_menus[$term->term_id] = $term; 88 $menu_selected_id = $term->term_id; 89 $menu_id_in_edit = $menu_selected_id; 90 $messagesdiv = '<div id="message" class="updated fade below-h2"><p>' . esc_html( sprintf( __('"%s" menu has been created!'), $term->name ) ) . '</p></div>'; 91 92 $postCounter = 0; 93 } 84 $custom_menus[$menu->term_id] = $menu; 85 $menu_selected_id = $menu->term_id; 86 $menu_id_in_edit = $menu_selected_id; 87 $messagesdiv = '<div id="message" class="updated fade below-h2"><p>' . esc_html( sprintf( __('"%s" menu has been created!'), $menu->name ) ) . '</p></div>'; 88 $postCounter = 0; 94 89 } 95 90 } else { … … 99 94 100 95 if ( isset($_POST['reset_wp_menu']) ) { 101 $success = wp_ custom_nav_reset();96 $success = wp_reset_nav_menu(); 102 97 if ( $success ) { 103 98 // DISPLAY SUCCESS MESSAGE IF Menu Reset Correctly … … 111 106 } 112 107 } elseif ( $postCounter > 0 && $menu_selected_id > 0 ) { 113 $menu_objects = get_objects_in_term( $menu_selected_id, 'nav_menu' ); 114 $menu_items = wp_custom_navigation_get_menu_items( $menu_objects ); 108 $menu_items = wp_get_nav_menu_items( $menu_selected_id, array('orderby' => 'ID', 'output' => ARRAY_A, 'output_key' => 'ID') ); 115 109 116 110 // Loop through all POST variables -
trunk/wp-includes/custom-navigation.php
r13338 r13344 11 11 */ 12 12 13 function wp_custom_navigation_get_menu_items( $menu_objects, $key = 'ID' ) {14 $menu_items = array();15 if ( !empty( $menu_objects ) && !empty( $key ) ) {16 $args = array( 'orderby' => 'menu_order', 'post_type' => 'nav_menu_item', 'post_status' => 'publish' );17 if ( count( $menu_objects ) > 1 )18 $args['include'] = implode( ',', $menu_objects );19 else20 $args['include'] = $menu_objects[0];21 $posts = get_posts( $args );22 if ( ! empty( $posts ) ) {23 foreach ( $posts as $post ) {24 $menu_items[ $post->$key ] = $post;25 }26 }27 unset( $posts );28 ksort( $menu_items );29 }30 return $menu_items;31 }32 33 13 function wp_custom_navigation_setup($override = false) { 34 14 // Custom Navigation Menu Setup … … 37 17 update_option('wp_settings_custom_nav_advanced_options', 'yes'); 38 18 39 $custom_menus = get_terms( 'nav_menu', array( 'hide_empty' => false ) ); 40 if ( !empty( $custom_menus ) ) { 41 foreach ( $custom_menus as $menu ) { 42 wp_custom_navigation_delete_menu( $menu->term_id ); 43 } 44 } 45 } 46 47 function wp_custom_navigation_delete_menu( $menu_term_id ) { 48 $term_id = (int) $menu_term_id; 49 if ( $term_id > 0 ) { 50 $menu_objects = get_objects_in_term( $term_id, 'nav_menu' ); 51 if ( !empty( $menu_objects ) ) { 52 foreach ( $menu_objects as $item ) { 53 wp_delete_post( $item ); 54 } 55 } 56 wp_delete_term( $term_id, 'nav_menu' ); 19 $menus = wp_get_nav_menus(); 20 if ( !empty( $menus ) ) { 21 foreach ( $menus as $menu ) { 22 wp_delete_nav_menu( $menu->term_id ); 23 } 24 } 25 26 wp_create_nav_menu( __('Main') ); 27 } 28 29 function wp_delete_nav_menu( $menu_id ) { 30 $menu_id = (int) $menu_id; 31 if ( !$menu_id ) 32 return false; 33 34 $menu_objects = get_objects_in_term( $menu_id, 'nav_menu' ); 35 if ( !empty( $menu_objects ) ) { 36 foreach ( $menu_objects as $item ) { 37 wp_delete_post( $item ); 38 } 39 } 40 wp_delete_term( $menu_id, 'nav_menu' ); 41 } 42 43 function wp_create_nav_menu( $menu_name ) { 44 $menu_exists = get_term_by( 'name', $menu_name, 'nav_menu' ); 45 46 if ( $menu_exists ) 47 return WP_Error('menu_exists', sprintf( __('A menu named "%s" already exists; please try another name.'), $menu_exists->name )); 48 49 return wp_insert_term( $menu_name, 'nav_menu' ); 50 } 51 52 function wp_get_nav_menus() { 53 return get_terms( 'nav_menu', array( 'hide_empty' => false ) ); 54 } 55 56 function wp_get_nav_menu_items( $menu, $args = array() ) { 57 $items = get_objects_in_term( (int) $menu, 'nav_menu' ); 58 59 $defaults = array( 'orderby' => 'menu_order', 'post_type' => 'nav_menu_item', 'post_status' => 'publish', 'output' => ARRAY_A, 'output_key' => 'menu_order' ); 60 $args = wp_parse_args($args, $defaults); 61 if ( count( $items ) > 1 ) 62 $args['include'] = implode( ',', $items ); 63 else 64 $args['include'] = $items[0]; 65 66 $items = get_posts( $args ); 67 68 if ( ARRAY_A == $args['output'] ) { 69 $output = array(); 70 foreach ( $items as $item ) { 71 $output[$item->$args['output_key']] = $item; 72 } 73 unset($items); 74 ksort($output); 75 return $output; 76 } else { 77 return $items; 57 78 } 58 79 } … … 264 285 extract($args, EXTR_SKIP); 265 286 266 $menu_objects = get_objects_in_term( $id, 'nav_menu' ); 267 $menu_items = wp_custom_navigation_get_menu_items( $menu_objects, 'menu_order' ); 287 $menu_items = wp_get_nav_menu_items( $id ); 268 288 269 289 $parent_stack = array(); … … 271 291 $parent_menu_order = array(); 272 292 // Setup parentage 273 foreach ( $menu_items as $ key => $menu_item ) {293 foreach ( $menu_items as $menu_item ) { 274 294 $parent_menu_order[ $menu_item->ID ] = $menu_item->menu_order; 275 295 }
Note: See TracChangeset
for help on using the changeset viewer.