The get_page_uri WordPress PHP filter allows you to modify the URI of a specific page.
Usage
add_filter('get_page_uri', 'your_custom_function', 10, 2); function your_custom_function($uri, $page) { // your custom code here return $uri; }
Parameters
$uri
(string) – The page URI that you want to modify.$page
(WP_Post) – The page object containing information about the specific page.
More information
See WordPress Developer Resources: get_page_uri
Examples
Change page URI to include parent page slug
This example modifies the page URI to include the parent page slug for better organization.
add_filter('get_page_uri', 'include_parent_page_slug', 10, 2); function include_parent_page_slug($uri, $page) { if ($page->post_parent) { $parent_slug = get_post_field('post_name', $page->post_parent); $uri = $parent_slug . '/' . $uri; } return $uri; }
Add a custom prefix to page URI
This example adds a custom prefix to the page URI.
add_filter('get_page_uri', 'add_custom_prefix', 10, 2); function add_custom_prefix($uri, $page) { $prefix = 'custom-prefix/'; $uri = $prefix . $uri; return $uri; }
Replace hyphens with underscores in page URI
This example replaces hyphens with underscores in the page URI.
add_filter('get_page_uri', 'replace_hyphens_with_underscores', 10, 2); function replace_hyphens_with_underscores($uri, $page) { $uri = str_replace('-', '_', $uri); return $uri; }
Add a query string to the page URI
This example adds a custom query string to the page URI.
add_filter('get_page_uri', 'add_query_string', 10, 2); function add_query_string($uri, $page) { $query_string = '?custom_key=custom_value'; $uri .= $query_string; return $uri; }
Remove numbers from the page URI
This example removes any numbers present in the page URI.
add_filter('get_page_uri', 'remove_numbers_from_uri', 10, 2); function remove_numbers_from_uri($uri, $page) { $uri = preg_replace('/[0-9]/', '', $uri); return $uri; }