Получает ссылку (URL) постоянной страницы WordPress (записи типа page).
Вместо этой функции почти всегда лучше использовать get_permalink() — универсальная функция, которая использует эту функцию когда нужно.
1 раз — 0.0038071 сек (очень медленно) | 50000 раз — 7.68 сек (быстро)
Возвращает
Строку
. URL.
Использование
get_page_link( $post, $leavename, $sample );
- $post(число|WP_Post)
- ID страницы или её объект.
По умолчанию: global $post - $leavename(true|false)
- Нужно ли оставить холдер
%pagename%
как есть. true - оставить холдер без замены его на имя страницы. Имя страницы собирается из имени текущей страницы и родительских, например,parent_page_name/current_page_name
.
По умолчанию: false - $sample(true|false)
- true — получить образец ссылки с учетом структуры ЧПУ. Это может быть нужно, когда ссылка форсированно возвращается в простом виде (не ЧПУ - /?pagename=contacts), а нам нужно получить именно ЧПУ (/contacts).
По умолчанию: false
Примеры
#1 Демонстрация работы
// тип записи page — для которого предназначена эта функция echo get_page_link( 10124 ); // https://wp-kama.ru/about/privacy-policy // оставим холдер echo get_page_link( 10124, true ); // https://wp-kama.ru/%pagename%
ВНИМАНИЕ: для типа записи post и других произвольных типов записей функция не предназначена, поэтому она может вернуть неправильный результат.
echo get_page_link( 13564 ); // https://wp-kama.ru/atributy-scrset-sizes // правильная ссылка будет такая echo get_permalink( 13564 ); // https://wp-kama.ru/id_13564/atributy-scrset-sizes.html
Список изменений
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 ); }