wp_get_nav_menu_to_edit() – Returns the menu formatted to edit.

You appear to be a bot. Output may be restricted

Description

Returns the menu formatted to edit.

Usage

$string|WP_Error = wp_get_nav_menu_to_edit( $menu_id );

Parameters

$menu_id
( int ) optional – Optional. The ID of the menu to format. Default 0.

Returns

string|WP_Error The menu formatted to edit or error object on failure.

Source

File name: wordpress/wp-admin/includes/nav-menu.php
Lines:

1 to 66 of 66
function wp_get_nav_menu_to_edit( $menu_id = 0 ) {
  $menu = wp_get_nav_menu_object( $menu_id );

  // If the menu exists, get its items.
  if ( is_nav_menu( $menu ) ) {
    $menu_items = wp_get_nav_menu_items( $menu->term_id, array( 'post_status' => 'any' ) );
    $result     = '<div id="menu-instructions" class="post-body-plain';
    $result    .= ( ! empty( $menu_items ) ) ? ' menu-instructions-inactive">' : '">';
    $result    .= '<p>' . __( 'Add menu items from the column on the left.' ) . '</p>';
    $result    .= '</div>';

    if ( empty( $menu_items ) ) {
      return $result . ' <ul class="menu" id="menu-to-edit"> </ul>';
    }

    
/**
 * Filters the Walker class used when adding nav menu items.
 *
 * @since 3.0.0
 *
 * @param string $class   The walker class to use. Default 'Walker_Nav_Menu_Edit'.
 * @param int    $menu_id ID of the menu being rendered.
 */
    $walker_class_name = apply_filters( 'wp_edit_nav_menu_walker', 'Walker_Nav_Menu_Edit', $menu_id );

    if ( class_exists( $walker_class_name ) ) {
      $walker = new $walker_class_name;
    } else {
      return new WP_Error(
        'menu_walker_not_exist',
        sprintf(
          /* translators: %s: Walker class name. */
          __( 'The Walker class named %s does not exist.' ),
          '<strong>' . $walker_class_name . '</strong>'
        )
      );
    }

    $some_pending_menu_items = false;
    $some_invalid_menu_items = false;
    foreach ( (array) $menu_items as $menu_item ) {
      if ( isset( $menu_item->post_status ) && 'draft' === $menu_item->post_status ) {
        $some_pending_menu_items = true;
      }
      if ( ! empty( $menu_item->_invalid ) ) {
        $some_invalid_menu_items = true;
      }
    }

    if ( $some_pending_menu_items ) {
      $result .= '<div class="notice notice-info notice-alt inline"><p>' . __( 'Click Save Menu to make pending menu items public.' ) . '</p></div>';
    }

    if ( $some_invalid_menu_items ) {
      $result .= '<div class="notice notice-error notice-alt inline"><p>' . __( 'There are some invalid menu items. Please check or delete them.' ) . '</p></div>';
    }

    $result .= '<ul class="menu" id="menu-to-edit"> ';
    $result .= walk_nav_menu_tree( array_map( 'wp_setup_nav_menu_item', $menu_items ), 0, (object) array( 'walker' => $walker ) );
    $result .= ' </ul> ';
    return $result;
  } elseif ( is_wp_error( $menu ) ) {
    return $menu;
  }

}
 

 View on GitHub View on Trac