From 1d2904bf2ace680d091e18403d78d3eb1a13816a Mon Sep 17 00:00:00 2001 From: Dion Hulse Date: Sat, 26 Dec 2015 03:45:28 +0000 Subject: [PATCH] Pages: `get_page_uri()` should return the URI at which the resource being accessed is available at, this may include non-'publish' status posts. Reverts [34001] and fixes the original issue in #15963 - avoiding a PHP Notice for when the post doesn't exist. Props tharsheblows. See #15963. Fixes #35084. git-svn-id: https://develop.svn.wordpress.org/trunk@36094 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/post.php | 2 +- tests/phpunit/tests/post.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/wp-includes/post.php b/src/wp-includes/post.php index 0ecf9a1ad7..0fb1dfa348 100644 --- a/src/wp-includes/post.php +++ b/src/wp-includes/post.php @@ -4300,7 +4300,7 @@ function get_page_uri( $page ) { foreach ( $page->ancestors as $parent ) { $parent = get_post( $parent ); - if ( 'publish' === $parent->post_status ) { + if ( $parent ) { $uri = $parent->post_name . '/' . $uri; } } diff --git a/tests/phpunit/tests/post.php b/tests/phpunit/tests/post.php index f98786e2f3..a1ec373be8 100644 --- a/tests/phpunit/tests/post.php +++ b/tests/phpunit/tests/post.php @@ -674,8 +674,8 @@ class Tests_Post extends WP_UnitTestCase { // try the child normally $this->assertEquals( 'parent/child', get_page_uri( $child_id ) ); - // now delete the parent and check - wp_delete_post( $parent_id ); + // now delete the parent from the database and check + wp_delete_post( $parent_id, true ); $this->assertEquals( 'child', get_page_uri( $child_id ) ); }