Changeset 15104 for trunk/wp-includes/nav-menu.php
- Timestamp:
- 06/02/2010 01:43:46 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-includes/nav-menu.php
r15091 r15104 147 147 */ 148 148 function wp_create_nav_menu( $menu_name ) { 149 $menu_exists = get_term_by( 'name', $menu_name, 'nav_menu' ); 150 151 if ( $menu_exists ) 152 return new WP_Error( 'menu_exists', sprintf( __('The menu name <strong>%s</strong> conflicts with another menu name. Please try another.'), esc_html( $menu_name ) ) ); 153 154 $menu = wp_insert_term( $menu_name, 'nav_menu' ); 155 156 if ( is_wp_error($menu) ) 157 return $menu; 158 159 $result = get_term( $menu['term_id'], 'nav_menu' ); 160 161 if ( $result && !is_wp_error($result) ) 162 do_action( 'wp_create_nav_menu', $menu['term_id'] ); 163 164 return $result; 149 return wp_update_nav_menu_object( 0, array( 'menu-name' => $menu_name ) ); 165 150 } 166 151 … … 198 183 * @since 3.0.0 199 184 * 200 * @param int $menu_id The ID of the menu 185 * @param int $menu_id The ID of the menu or "0" to create a new menu. 201 186 * @param array $menu_data The array of menu data. 202 187 * @return int|error object The menu's ID or WP_Error object. … … 206 191 207 192 $_menu = wp_get_nav_menu_object( $menu_id ); 208 209 // menu doesn't already exist210 if ( ! $_menu || is_wp_error( $_menu ) )211 $_menu = wp_create_nav_menu( $menu_data['menu-name'] );212 213 if ( is_wp_error( $_menu ) )214 return $_menu;215 216 if ( ! $_menu || ! isset( $_menu->term_id ) )217 return 0;218 193 219 194 $args = array( … … 224 199 ); 225 200 226 $menu_id = (int) $_menu->term_id; 227 228 // double-check that we're not changing a menu to the name of another 201 // double-check that we're not going to have one menu take the name of another 229 202 $_possible_existing = get_term_by( 'name', $menu_data['menu-name'], 'nav_menu' ); 230 203 if ( … … 236 209 return new WP_Error( 'menu_exists', sprintf( __('The menu name <strong>%s</strong> conflicts with another menu name. Please try another.'), esc_html( $menu_data['menu-name'] ) ) ); 237 210 211 // menu doesn't already exist, so create a new menu 212 if ( ! $_menu || is_wp_error( $_menu ) ) { 213 $menu_exists = get_term_by( 'name', $menu_data['menu-name'], 'nav_menu' ); 214 215 if ( $menu_exists ) 216 return new WP_Error( 'menu_exists', sprintf( __('The menu name <strong>%s</strong> conflicts with another menu name. Please try another.'), esc_html( $menu_data['menu-name'] ) ) ); 217 218 $_menu = wp_insert_term( $menu_data['menu-name'], 'nav_menu', $args ); 219 220 if ( is_wp_error( $_menu ) ) 221 return $_menu; 222 223 do_action( 'wp_create_nav_menu', $_menu['term_id'], $menu_data ); 224 225 return (int) $_menu['term_id']; 226 } 227 228 if ( ! $_menu || ! isset( $_menu->term_id ) ) 229 return 0; 230 231 $menu_id = (int) $_menu->term_id; 232 238 233 $update_response = wp_update_term( $menu_id, 'nav_menu', $args ); 239 234 240 if ( ! is_wp_error( $update_response ) ) 241 return $menu_id; 242 else 235 if ( is_wp_error( $update_response ) ) 243 236 return $update_response; 237 238 do_action( 'wp_update_nav_menu', $menu_id, $menu_data ); 239 return $menu_id; 244 240 } 245 241
Note: See TracChangeset
for help on using the changeset viewer.