block_core_navigation_get_classic_menu_fallback

The timeline below displays how wordpress function block_core_navigation_get_classic_menu_fallback has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.3

/**
 * Get the classic navigation menu to use as a fallback.
 *
 * @deprecated 6.3.0 Use WP_Navigation_Fallback::get_classic_menu_fallback() instead.
 *
 * @return object WP_Term The classic navigation.
 */
function block_core_navigation_get_classic_menu_fallback()
{
    _deprecated_function(__FUNCTION__, '6.3.0', 'WP_Navigation_Fallback::get_classic_menu_fallback');
    $classic_nav_menus = wp_get_nav_menus();
    // If menus exist.
    if ($classic_nav_menus && !is_wp_error($classic_nav_menus)) {
        // Handles simple use case where user has a classic menu and switches to a block theme.
        // Returns the menu assigned to location `primary`.
        $locations = get_nav_menu_locations();
        if (isset($locations['primary'])) {
            $primary_menu = wp_get_nav_menu_object($locations['primary']);
            if ($primary_menu) {
                return $primary_menu;
            }
        }
        // Returns a menu if `primary` is its slug.
        foreach ($classic_nav_menus as $classic_nav_menu) {
            if ('primary' === $classic_nav_menu->slug) {
                return $classic_nav_menu;
            }
        }
        // Otherwise return the most recently created classic menu.
        usort($classic_nav_menus, static function ($a, $b) {
            return $b->term_id - $a->term_id;
        });
        return $classic_nav_menus[0];
    }
}

WordPress Version: 6.2

/**
 * Get the classic navigation menu to use as a fallback.
 *
 * @return object WP_Term The classic navigation.
 */
function block_core_navigation_get_classic_menu_fallback()
{
    $classic_nav_menus = wp_get_nav_menus();
    // If menus exist.
    if ($classic_nav_menus && !is_wp_error($classic_nav_menus)) {
        // Handles simple use case where user has a classic menu and switches to a block theme.
        // Returns the menu assigned to location `primary`.
        $locations = get_nav_menu_locations();
        if (isset($locations['primary'])) {
            $primary_menu = wp_get_nav_menu_object($locations['primary']);
            if ($primary_menu) {
                return $primary_menu;
            }
        }
        // Returns a menu if `primary` is its slug.
        foreach ($classic_nav_menus as $classic_nav_menu) {
            if ('primary' === $classic_nav_menu->slug) {
                return $classic_nav_menu;
            }
        }
        // Otherwise return the most recently created classic menu.
        usort($classic_nav_menus, function ($a, $b) {
            return $b->term_id - $a->term_id;
        });
        return $classic_nav_menus[0];
    }
}