diff --git a/src/wp-includes/post.php b/src/wp-includes/post.php index 286ad8ccf6..5a0671ac46 100644 --- a/src/wp-includes/post.php +++ b/src/wp-includes/post.php @@ -7642,12 +7642,13 @@ function _publish_post_hook( $post_id ) { * Returns the ID of the post's parent. * * @since 3.1.0 + * @since 5.9.0 The `$post` parameter was made optional. * - * @param int|WP_Post $post Post ID or post object. + * @param int|WP_Post|null $post Optional. Post ID or post object. Defaults to global $post. * @return int|false Post parent ID (which can be 0 if there is no parent), * or false if the post does not exist. */ -function wp_get_post_parent_id( $post ) { +function wp_get_post_parent_id( $post = null ) { $post = get_post( $post ); if ( ! $post || is_wp_error( $post ) ) { return false; diff --git a/tests/phpunit/tests/post/wpGetPostParentId.php b/tests/phpunit/tests/post/wpGetPostParentId.php index bd25232830..c2160498bc 100644 --- a/tests/phpunit/tests/post/wpGetPostParentId.php +++ b/tests/phpunit/tests/post/wpGetPostParentId.php @@ -33,6 +33,15 @@ class Tests_Post_wpGetPostParentId extends WP_UnitTestCase { $this->assertSame( self::$parent_post_id, wp_get_post_parent_id( self::$post_id ) ); } + /** + * @ticket 48358 + * @covers ::wp_get_post_parent_id + */ + public function test_wp_get_post_parent_id_with_no_post_argument_default_to_global_post_id() { + $GLOBALS['post'] = get_post( self::$post_id ); + $this->assertSame( self::$parent_post_id, wp_get_post_parent_id() ); + } + public function test_wp_get_post_parent_id_with_non_existing_id_default_to_global_post_id() { $GLOBALS['post'] = get_post( self::$post_id ); $this->assertSame( self::$parent_post_id, wp_get_post_parent_id( 0 ) );