X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/4713a14935b83517997f3c88f808eb41da55033d..a7cd4c052013b423c6301153f68c7fdbaa2a447b:/wp-includes/nav-menu.php diff --git a/wp-includes/nav-menu.php b/wp-includes/nav-menu.php index 46a6b2b7..602ad41e 100644 --- a/wp-includes/nav-menu.php +++ b/wp-includes/nav-menu.php @@ -12,10 +12,7 @@ * * @since 3.0.0 * - * @uses get_term - * @uses get_term_by - * - * @param string $menu Menu id, slug or name + * @param string $menu Menu ID, slug, or name. * @return mixed false if $menu param isn't supplied or term does not exist, menu object if successful. */ function wp_get_nav_menu_object( $menu ) { @@ -43,7 +40,7 @@ function wp_get_nav_menu_object( $menu ) { * * @since 3.0.0 * - * @param int|string $menu The menu to check (id, slug, or name) + * @param int|string $menu The menu to check (ID, slug, or name). * @return bool Whether the menu exists. */ function is_nav_menu( $menu ) { @@ -81,8 +78,7 @@ function register_nav_menus( $locations = array() ) { /** * Unregisters a navigation menu for a theme. * - * @param array $location the menu location identifier - * + * @param string $location The menu location identifier. * @return bool True on success, false on failure. */ function unregister_nav_menu( $location ) { @@ -142,6 +138,11 @@ function get_nav_menu_locations() { * @return bool Whether location has a menu. */ function has_nav_menu( $location ) { + $registered_nav_menus = get_registered_nav_menus(); + if ( ! isset( $registered_nav_menus[ $location ] ) ) { + return false; + } + $locations = get_nav_menu_locations(); return ( ! empty( $locations[ $location ] ) ); } @@ -163,8 +164,8 @@ function is_nav_menu_item( $menu_item_id = 0 ) { * * @since 3.0.0 * - * @param string $menu_name Menu Name - * @return mixed Menu object on success|WP_Error on failure + * @param string $menu_name Menu name. + * @return int|WP_Error Menu ID on success, WP_Error object on failure. */ function wp_create_nav_menu( $menu_name ) { return wp_update_nav_menu_object( 0, array( 'menu-name' => $menu_name ) ); @@ -175,8 +176,8 @@ function wp_create_nav_menu( $menu_name ) { * * @since 3.0.0 * - * @param string $menu name|id|slug - * @return mixed Menu object on success|WP_Error on failure + * @param string $menu Menu ID, slug, or name. + * @return bool|WP_Error True on success, false or WP_Error object on failure. */ function wp_delete_nav_menu( $menu ) { $menu = wp_get_nav_menu_object( $menu ); @@ -221,7 +222,7 @@ function wp_delete_nav_menu( $menu ) { * * @param int $menu_id The ID of the menu or "0" to create a new menu. * @param array $menu_data The array of menu data. - * @return int|WP_Error object The menu's ID or WP_Error object. + * @return int|WP_Error Menu ID on success, WP_Error object on failure. */ function wp_update_nav_menu_object( $menu_id = 0, $menu_data = array() ) { $menu_id = (int) $menu_id; @@ -455,12 +456,15 @@ function wp_update_nav_menu_item( $menu_id = 0, $menu_item_db_id = 0, $menu_item * Returns all navigation menu objects. * * @since 3.0.0 + * @since 4.1.0 Default value of the 'orderby' argument was changed from 'none' + * to 'name'. * - * @param array $args Array of arguments passed on to get_terms(). - * @return array menu objects + * @param array $args Optional. Array of arguments passed on to {@see get_terms()}. + * Default empty array. + * @return array Menu objects. */ function wp_get_nav_menus( $args = array() ) { - $defaults = array( 'hide_empty' => false, 'orderby' => 'none' ); + $defaults = array( 'hide_empty' => false, 'orderby' => 'name' ); $args = wp_parse_args( $args, $defaults ); /** @@ -507,13 +511,15 @@ function _sort_nav_menu_items( $a, $b ) { } /** - * Returns if a menu item is valid. Bug #13958 + * Return if a menu item is valid. + * + * @link https://core.trac.wordpress.org/ticket/13958 * * @since 3.2.0 * @access private * - * @param object $menu_item The menu item to check - * @return bool false if invalid, else true. + * @param object $item The menu item to check. + * @return bool False if invalid, otherwise true. */ function _is_valid_nav_menu_item( $item ) { if ( ! empty( $item->_invalid ) ) @@ -523,13 +529,13 @@ function _is_valid_nav_menu_item( $item ) { } /** - * Returns all menu items of a navigation menu. + * Return all menu items of a navigation menu. * * @since 3.0.0 * - * @param string $menu menu name, id, or slug - * @param string $args - * @return mixed $items array of menu items, else false. + * @param string $menu Menu name, ID, or slug. + * @param array $args Optional. Arguments to pass to {@see get_posts()}. + * @return mixed $items Array of menu items, otherwise false. */ function wp_get_nav_menu_items( $menu, $args = array() ) { $menu = wp_get_nav_menu_object( $menu ); @@ -547,10 +553,7 @@ function wp_get_nav_menu_items( $menu, $args = array() ) { $defaults = array( 'order' => 'ASC', 'orderby' => 'menu_order', 'post_type' => 'nav_menu_item', 'post_status' => 'publish', 'output' => ARRAY_A, 'output_key' => 'menu_order', 'nopaging' => true ); $args = wp_parse_args( $args, $defaults ); - if ( count( $items ) > 1 ) - $args['include'] = implode( ',', $items ); - else - $args['include'] = $items[0]; + $args['include'] = $items; $items = get_posts( $args ); @@ -660,6 +663,11 @@ function wp_setup_nav_menu_item( $menu_item ) { $original_object = get_post( $menu_item->object_id ); $original_title = $original_object->post_title; + + if ( '' === $original_title ) { + $original_title = sprintf( __( '#%d (no title)' ), $original_object->ID ); + } + $menu_item->title = '' == $menu_item->post_title ? $original_title : $menu_item->post_title; } elseif ( 'taxonomy' == $menu_item->type ) {