Advertisement
Guest User

Duplicate Menu

a guest
Jul 27th, 2010
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.04 KB | None | 0 0
  1. case 'duplicate':
  2.         //check_admin_referer( SOMETHING HERE );
  3.        
  4.         //get selected menu information
  5.         $duplicated_nav_menu_id=$nav_menu_selected_id;
  6.         $duplicated_nav_menu = wp_get_nav_menu_object( $nav_menu_selected_id );
  7.         $duplicated_nav_menu_items = wp_get_nav_menu_items($nav_menu_selected_id);
  8.        
  9.         //$duplicate_nav_menu = wp_duplicate_nav_menu( $nav_menu_selected_id ); //I'd like to have this as a separate function in nav-menu.php in wp-includes.
  10.        
  11.         //create new menu name -> borrowed from Add New under Update
  12.         $new_menu_title = $duplicated_nav_menu->name.''.rand();
  13.        
  14.         $_nav_menu_selected_id = wp_update_nav_menu_object( 0, array('menu-name' => $new_menu_title) ); // 0 means create new menu; 2nd arg is an array of menu data
  15.        
  16.         if ( is_wp_error( $_nav_menu_selected_id ) ) {
  17.             $messages[] = '<div id="message" class="error"><p>' . $_nav_menu_selected_id->get_error_message() . '</p></div>';
  18.         } else {
  19.             if ( ( $_menu_locations = get_registered_nav_menus() ) && 1 == count( wp_get_nav_menus() ) )
  20.                 set_theme_mod( 'nav_menu_locations', array( key( $_menu_locations ) => $_nav_menu_selected_id ) );
  21.             unset( $_menu_locations );
  22.             $_menu_object = wp_get_nav_menu_object( $_nav_menu_selected_id );
  23.             $new_nav_menu_title = $_menu_object->name;
  24.            
  25.             $_menu_object = wp_get_nav_menu_object( $duplicated_nav_menu_id );
  26.             $nav_menu_selected_title = $_menu_object->name; //duplicated menu name
  27.            
  28.             $nav_menu_selected_id = $_nav_menu_selected_id; //newly created menu id
  29.             $messages[] = '<div id="message" class="updated"><p>' . sprintf( __('The <strong>%s</strong> menu has been successfully created.'), $new_menu_title ) . '</p></div>';
  30.         }
  31.         //update new menu
  32.        
  33.         break;
  34.  
  35. //after delete-action
  36.  
  37. <div class="duplicate-action">
  38.     <a class="submitduplicate duplication menu-duplicate" href="<?php echo esc_url( wp_nonce_url( admin_url('nav-menus.php?action=duplicate&amp;menu=' . $nav_menu_selected_id), 'duplicate-nav_menu-' . $nav_menu_selected_id ) ); ?>"><?php _e('Duplicate Menu'); ?></a>
  39. </div><!-- END .duplicate-action -->
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement