Получение ссылки на страницу с помощью функции get_page_link()
В этой статье мы рассмотрим, как использовать функцию get_page_link() в WordPress для получения постоянной ссылки (пермачки) на текущую страницу или страницу по её идентификатору.
Описание функции
Функция get_page_link() была введена в версию WordPress 1.5.0 и позволяет получить ссылку на страницу, которая соответствует определённым параметрам. Она учитывает настройки главной страницы вашего сайта (page_on_front), что делает её очень удобной.
Используемые функции
Функция get_page_link() использует другую функцию — _get_page_link(), которая отвечает за основную логику получения ссылки на страницу.
Время выполнения
- Время выполнения функции: 0.0038071 сек (очень медленно)
- 50000 вызовов: 7.68 сек (быстро)
Хуки функции
Функция get_page_link() использует хуки, в частности, хук page_link, который позволяет изменять сгенерированную ссылку.
Возвращаемое значение
Функция возвращает строку — постоянную ссылку на страницу.
Использование функции
Функция get_page_link() принимает три параметра:
$post(int или WP_Post) — Идентификатор поста или объект поста. По умолчанию используется глобальная переменная$post.$leavename(true или false) — Определяет, нужно ли сохранять название страницы. По умолчанию — false.$sample(true или false) — Определяет, будет ли ссылка восприниматься как пример ссылки. По умолчанию — false.
Пример вызова функции:
get_page_link( $post, $leavename = false, $sample = false );
Примеры
Пример 1: Получение ссылки на страницу
echo get_page_link( 10124 ); // Выводит: https://example.com/about/privacy-policy
Пример 2: Сохранение имени страницы как placeholder
echo get_page_link( 10124, true ); // Выводит: https://example.com/%pagename%
Внимание: Функция не предназначена для использования с постами типов "пост" и другими пользовательскими типами постов, поэтому может возвращать неправильные результаты.
Пример 3: Ссылка на страницу с другим ID
echo get_page_link( 13564 ); // Выводит: https://example.com/atributy-scrset-sizes
// Правильный вариант
echo get_permalink( 13564 ); // Выводит: https://example.com/id_13564/atributy-scrset-sizes.html
Пример использования функции в HTML-шаблоне
Если вы хотите использовать функцию внутри HTML-шаблона, можете сделать это так:
Код функции
Если вам интересно, как выглядит код функции get_page_link(), вот он:
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 );
}
return apply_filters( 'page_link', $link, $post->ID, $sample );
}
Заключение
Функция get_page_link() в WordPress — это мощный инструмент для работы с постоянными ссылками на страницы. Она позволяет упрощать навигацию и улучшать пользовательский опыт на вашем сайте. Используйте её в своих проектах, чтобы сделать ссылки более удобными и функциональными.