Получение ссылки на страницу: использование функции `get_page_link()`

Получение ссылки на страницу с помощью функции 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 — это мощный инструмент для работы с постоянными ссылками на страницы. Она позволяет упрощать навигацию и улучшать пользовательский опыт на вашем сайте. Используйте её в своих проектах, чтобы сделать ссылки более удобными и функциональными.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *