Функция 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 или объекта поста, что делает её очень удобной для использования в любых частях вашего проекта.