Make WordPress Core


Ignore:
Timestamp:
08/21/2023 05:49:09 PM (16 months ago)
Author:
hellofromTonya
Message:

Editor: Fix error handling of converting classic to block menus.

Fixes the error handling for when WP_Classic_To_Block_Menu_Converter::convert() returns an instance of WP_Error. WP_Navigation_Fallback::create_classic_menu_fallback() now checks for is_wp_error() and if true, returns the error. And the @return type is updated to string|WP_Error.

Also includes a fix in the return type in WP_Classic_To_Block_Menu_Converter::convert() to return an empty string instead of an array instead, i.e. when bailing out for no menu items returned by wp_get_nav_menu_items(). The return type is clearly documented as a string.

Follow-up to [56052].

Props dlh, get_dave, antonvlasenko, hellofromTonya.
Fixes #58823.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/editor/classic-to-block-menu-converter.php

    r56052 r56422  
    206206     * @covers WP_Classic_To_Block_Menu_Converter::convert
    207207     */
    208     public function test_returns_empty_array_for_menus_with_no_items() {
     208    public function test_returns_empty_string_for_menus_with_no_items() {
    209209        $menu_id = wp_create_nav_menu( 'Empty Menu' );
    210210
     
    213213        $blocks = WP_Classic_To_Block_Menu_Converter::convert( $classic_nav_menu );
    214214
    215         $this->assertEmpty( $blocks, 'Result should be empty.' );
    216 
    217         $this->assertIsArray( $blocks, 'Result should be empty array.' );
     215        $this->assertSame( '', $blocks, 'Result should be empty string.' );
    218216
    219217        wp_delete_nav_menu( $menu_id );
Note: See TracChangeset for help on using the changeset viewer.