Make WordPress Core

Changeset 60701


Ignore:
Timestamp:
09/02/2025 04:48:32 PM (11 months ago)
Author:
SergeyBiryukov
Message:

Posts, Post Types: Check the result of creating a draft in get_default_post_to_edit().

As wp_insert_post() can return an error for various reasons, this commit ensures that this scenario is properly handled and an error message is displayed.

Follow-up to [12987].

Props rishabhwp, tfrommen, SirLouen, siliconforks, SergeyBiryukov.
Fixes #37441.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-admin/includes/post.php

    r60681 r60701  
    769769                                'post_status' => 'auto-draft',
    770770                        ),
    771                         false,
     771                        true,
    772772                        false
    773773                );
    774                 $post    = get_post( $post_id );
     774
     775                if ( is_wp_error( $post_id ) ) {
     776                        wp_die( $post_id->get_error_message() );
     777                }
     778
     779                $post = get_post( $post_id );
     780
    775781                if ( current_theme_supports( 'post-formats' ) && post_type_supports( $post->post_type, 'post-formats' ) && get_option( 'default_post_format' ) ) {
    776782                        set_post_format( $post, get_option( 'default_post_format' ) );
    777783                }
     784
    778785                wp_after_insert_post( $post, false, null );
    779786
  • trunk/tests/phpunit/tests/admin/includesPost.php

    r58360 r60701  
    533533
    534534                $this->assertSame( 1, $action->get_call_count() );
     535        }
     536
     537        /**
     538         * Tests that get_default_post_to_edit() calls wp_die() if wp_insert_post() returns a WP_Error.
     539         *
     540         * @ticket 37441
     541         *
     542         * @covers ::get_default_post_to_edit
     543         */
     544        public function test_get_default_post_to_edit_with_wp_insert_post_error() {
     545                add_filter( 'wp_insert_post_empty_content', '__return_true' );
     546
     547                $this->expectException( 'WPDieException' );
     548                get_default_post_to_edit( 'post', true );
    535549        }
    536550
Note: See TracChangeset for help on using the changeset viewer.