Esempio n. 1
0
	/**
	 * Keeps the menus in order based on saved orderings
	 *
	 * @since 1.6
	 * @access public
	 *
	 * @param $wp_admin_bar instance of WP_Admin_Bar passed by refrence
	 * @hook admin_bar_menu
	 *
	 * @return void
	 */
	public function reorder_menus(){
		/**
		 * @var $wp_admin_bar WP_Admin_Bar
		 */
		global $wp_admin_bar;
		$order = UB_Admin_Bar::order();
		if( !$order || !is_array( $order ) ) return;

		$nodes = $wp_admin_bar->get_nodes();
		// remove all nodes
		foreach( $nodes as $node_id =>  $node ){
			$wp_admin_bar->remove_node( $node_id );
		}

		// add ordered nodes
		foreach( $order as $o ){
			if( isset( $nodes[$o] ) ){
				$wp_admin_bar->add_node( $nodes[ $o ] );
				unset( $nodes[ $o ] );
			}
		}

		// add rest of the nodes
		if( count( $nodes ) > 0 ){
			foreach( $nodes as $node ){
				$wp_admin_bar->add_node($node);
			}
		}

	}