get_page_link()
Retrieves the permalink for the current page or page ID.
Respects page_on_front. Use this one.
Uses: _get_page_link()
Used By: get_permalink()
1 time — 0.0038071 sec (very slow) | 50000 times — 7.68 sec (fast)
Hooks from the function
Return
String
. The page permalink.
Usage
get_page_link( $post, $leavename, $sample );
- $post(int|WP_Post)
- Post ID or object.
Default: uses the global $post - $leavename(true|false)
- Whether to keep the page name.
Default: false - $sample(true|false)
- Whether it should be treated as a sample permalink.
Default: false
Examples
#1 Demo
// page post type - for which this function is intended echo get_page_link( 10124 ); // https://example.com/about/privacy-policy // leave the placeholder echo get_page_link( 10124, true ); // https://example.com/%pagename%
WARNING: the function is not intended to be used for post
post type and other custom post types, so it may return an incorrect results.
echo get_page_link( 13564 ); // https://example.com/atributy-scrset-sizes // the correct is echo get_permalink( 13564 ); // https://example.com/id_13564/atributy-scrset-sizes.html
#2 Example of use in an HTML template
<a href="<?= esc_url( get_page_link( 40 ) ); ?>"> <?php esc_html_e( 'Map', 'textdomain' ); ?> </a>
Changelog
Since 1.5.0 | Introduced. |
get_page_link() get page link code WP 6.1.1
function get_page_link( $post = false, $leavename = false, $sample = false ) { $post = get_post( $post ); if ( 'page' === get_option( 'show_on_front' ) && 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 ); }