Функция get_permalink(): Получение ссылки на пост или страницу в WordPress

Функция get_permalink() используется для получения постоянной ссылки (URL) на пост, страницу или кастомный тип записи в WordPress. Это одна из самых часто используемых функций в разработке тем и плагинов, так как позволяет вывести URL любого типа контента на сайте.

get_permalink( int|WP_Post $post = 0, bool $leavename = false );

Аргументы:

  • $post (int|WP_Post, необязательно): ID поста или объект WP_Post. Если не указан, используется текущий пост из главного запроса.
  • $leavename (bool, необязательно): Если установлено в true, сохраняет «слаг» поста в URL вместо преобразования его в настоящий URL. По умолчанию — false.

Возвращаемое значение:

Возвращает строку с URL-адресом поста или страницы. Если пост не существует, вернёт пустую строку.

Пример использования

Чтобы получить ссылку на текущий пост в шаблоне, можно использовать следующий код:

<?php 
$permalink = get_permalink();
echo '<a href="' . esc_url( $permalink ) . '">Перейти к посту</a>';
?>

Этот код выведет ссылку на текущий пост, и она будет корректно экранирована для безопасного вывода в HTML.

Пример с указанием конкретного поста

Если нужно получить ссылку для поста с определённым ID (например, ID поста 123), это можно сделать так:

<?php 
$permalink = get_permalink( 123 );
echo '<a href="' . esc_url( $permalink ) . '">Перейти к посту 123</a>';
?>

Использование с объектом поста

Вы также можете передать объект поста в функцию:

<?php 
$post = get_post( 123 );
$permalink = get_permalink( $post );
echo '<a href="' . esc_url( $permalink ) . '">Перейти к посту</a>';
?>

Пример с использованием $leavename

Параметр $leavename полезен, если нужно получить ссылку с «слагом» поста, но без замены его на реальный URL. Это может пригодиться при генерации черновых ссылок или для специфической обработки:

<?php 
$permalink = get_permalink( 123, true ); // Оставляем "слаг"
echo $permalink;
?>

Когда использовать get_permalink()

Функция get_permalink() обычно используется в следующих случаях:

  • Для генерации ссылки на пост или страницу в шаблонах тем.
  • В плагинах, когда нужно получить URL-адрес определённого поста или страницы.
  • В любых других местах, где необходимо получить ссылку на контент.

Полезные примеры

Получение ссылки на произвольный тип записи

Если вы работаете с кастомным типом записи (например, portfolio), можно также использовать get_permalink() для получения ссылки на любой пост этого типа:

<?php 
$permalink = get_permalink( $portfolio_post_id );
echo '<a href="' . esc_url( $permalink ) . '">Посмотреть проект</a>';
?>

Пример для страниц (Pages)

Функция также отлично работает для страниц. Если нужно получить ссылку на определённую страницу:

<?php 
$page_permalink = get_permalink( $page_id );
echo '<a href="' . esc_url( $page_permalink ) . '">Перейти к странице</a>';
?>

Функция get_permalink() — это важный инструмент для разработчиков WordPress, который позволяет быстро и легко получить URL на пост, страницу или любой другой тип контента. Она поддерживает гибкие возможности передачи ID или объекта поста, что делает её очень удобной для использования в любых частях вашего проекта.

Почитаем еще?: