Функция get_the_permalink()
используется для получения URL-адреса поста, который в данный момент обрабатывается в цикле. В отличие от функции the_permalink()
, которая выводит URL на экран, get_the_permalink()
возвращает его в виде строки. Эта функция является альтернативой get_permalink()
и работает на основе её логики.
string|false get_the_permalink( int|WP_Post|null $post = null, bool $leavename = false )
- $post (необязательный): ID поста, объект
WP_Post
илиnull
. Если не указан, используется текущий глобальный объект поста. - $leavename (необязательный): Булев параметр. Если установлен в
true
, то конструкция%postname%
не заменяется на имя поста. В этом случае возвращаемый URL будет содержать%postname%
как часть строки.
Возвращаемое значение
Функция возвращает строку с полным URL-адресом поста или страницы, или false
, если URL получить не удалось.
Примеры использования
- Получение URL текущего поста
Для вывода ссылки на текущий пост внутри цикла используйте следующий код:
<a href="<?php echo get_the_permalink(); ?>">Читать дальше...</a>
Этот код генерирует ссылку на пост, который в данный момент обрабатывается в цикле WordPress.
- Получение URL поста по его ID
Если вам нужно получить ссылку на пост с конкретным ID, используйте:
$url = get_the_permalink( 3 );
// Выведет: http://example.com/post-name/
Этот код возвращает URL поста с ID 3.
- Использование второго параметра
$leavename
Параметр $leavename
управляет тем, как в URL обрабатывается имя поста. Например, если ваша структура постоянных ссылок настроена как %post_id%/%postname%.html
, то:
$url = get_the_permalink( 12 );
// Выведет: http://example.com/12/post-name.html
echo get_the_permalink( 1, true );
// Выведет: http://example.com/1/%postname%.html
Если $leavename
установлен в true
, конструкция %postname%
останется в URL, вместо замены на фактическое имя поста.
- Использование в цикле WordPress
// Внутри цикла WordPress для получения URL текущего поста
if ( have_posts() ) :
while ( have_posts() ) : the_post();
$post_url = get_the_permalink();
echo '<a href="' . esc_url($post_url) . '">' . get_the_title() . '</a>';
endwhile;
endif;
- Получение URL поста с использованием объекта WP_Post
// Получение URL поста с использованием объекта WP_Post
$post = get_post(42); // Получение объекта WP_Post
echo get_the_permalink($post);
Примечания
- Функция
get_the_permalink()
предназначена для использования внутри цикла WordPress. Вне цикла, возможно, потребуется передать ID поста или объектWP_Post
. - Если функция не может получить URL, она вернет
false
. Убедитесь, что переданный ID или объект действителен и существует.
Заключение
Функция get_the_permalink()
представляет собой мощный инструмент для получения URL-адресов постов в WordPress. Она позволяет создавать динамичные ссылки в ваших шаблонах и плагинах, что делает её неотъемлемой частью разработки на платформе WordPress. Понимание её работы и правильное использование помогут вам эффективно управлять ссылками на ваш контент.