get_page_uri( WP_Post|object|int $page )
Build the URI path for a page.
Description
Sub pages will be in the "directory" under the parent page post name.
Parameters
Return
(string|false) Page URI, false on error.
More Information
If the page has parents, those are prepended to the URI to provide a full path. For example, a third level page might return a URI like this:
top-level-page/sub-page/current-page
This function will return a “slug” style URI regardless of whether “pretty” Permalinks are configured.
Source
File: wp-includes/post.php
function get_page_uri( $page = 0 ) {
	if ( ! $page instanceof WP_Post ) {
		$page = get_post( $page );
	}
	if ( ! $page ) {
		return false;
	}
	$uri = $page->post_name;
	foreach ( $page->ancestors as $parent ) {
		$parent = get_post( $parent );
		if ( $parent && $parent->post_name ) {
			$uri = $parent->post_name . '/' . $uri;
		}
	}
	/**
	 * Filters the URI for a page.
	 *
	 * @since 4.4.0
	 *
	 * @param string  $uri  Page URI.
	 * @param WP_Post $page Page object.
	 */
	return apply_filters( 'get_page_uri', $uri, $page );
}  Changelog
| Version | Description | 
|---|---|
| 4.6.0 | The $page parameter was made optional. |  
| 1.5.0 | Introduced. | 
    © 2003–2021 WordPress Foundation
Licensed under the GNU GPLv2+ License.
    https://developer.wordpress.org/reference/functions/get_page_uri