Retrieves the permalink for the current page or page ID.
Description
Respects page_on_front. Use this one.
Parameters
$postint|WP_Postoptional- Post ID or object. Default uses the global
$post.Default:
false $leavenamebooloptional- Whether to keep the page name.
Default:
false $samplebooloptional- Whether it should be treated as a sample permalink.
Default:
false
Source
function get_page_link( $post = false, $leavename = false, $sample = false ) { $post = get_post( $post ); if ( 'page' === get_option( 'show_on_front' ) && (int) get_option( 'page_on_front' ) === $post->ID ) { $link = home_url( '/' ); } else { $link = _get_page_link( $post, $leavename, $sample ); } /** * Filters the permalink for a page. * * @since 1.5.0 * * @param string $link The page's permalink. * @param int $post_id The ID of the page. * @param bool $sample Is it a sample permalink. */ return apply_filters( 'page_link', $link, $post->ID, $sample ); } Hooks
- apply_filters( ‘page_link’,
string $link ,int $post_id ,bool $sample ) Filters the permalink for a page.
Changelog
| Version | Description |
|---|---|
| 1.5.0 | Introduced. |
[html]
<a href="<?php echo esc_url( get_page_link( 40 ) ); ?>">
<?php esc_html_e( ‘Map’, ‘textdomain’ ); ?>
</a>
[/html]