get_page_link() — возвращает ссылку на страницу (тип поста page, но работает и для записей тоже).

Функция возвращает абсолютный URL текущей страницы (если используется в цикле) или же страницы с указанным в параметрах ID. Все параметры необязательные. Все параметры по умолчанию имеют значение false.

Если же страница установлена на морду сайта, тогда результатом действия функции будет значение home_url('/').

get_page_link( $post = false, $leavename = false, $sample = false )
$post
(целое число|объект) ID или объект страницы, по умолчанию — текущая страница из цикла.
$leavename
(логическое) если установлено true, то вместо урла будет возвращать структуру постоянных ссылок для страниц.
$sample
(логическое) для этого параметра есть несколько случаев:

  • Если страница не является черновиком и не находится на модерации (статусы draft, pending, auto-draft), тогда вне зависимости от параметра $sample, будет выводиться ссылка на страницу как обычно;
  • Если же страница имеет один из перечисленных статусов (ну т.е. она не опубликована), тогда по умолчанию ее URL будет вида: https://misha.blog/?page_id=2 (в этом случае параметр $leavename кстати будет игнорироваться), однако если параметр $sample установить равным true, тогда в URL будет учитываться структура постоянных ссылок, например: https://misha.blog/sample-page.

Примеры

Предположим, у нас есть какая-то страница с ID=2 и ярлыком sample-page.

echo get_page_link( 2 );
// https://misha.blog/sample-page
echo get_page_link( 2, true );
// https://misha.blog/%pagename%
<?php $page_id = 2 ?>
<a href="<?php echo get_page_link( $page_id ); ?>">Перейти &rarr;</a>
Миша Рудрастых Разработчик WordPress WooCommerce

Миша Рудрастых

Впервые познакомился с WordPress в 2009 году, и после двух лет мучений с Joomla и самописными движками это был просто бальзам на душу. С 2014 года меня можно встретить на WordCamp — официальной конфе по WP в Москве, иногда там выступаю. Также в настоящее время веду курсы по WordPress в Epic Skills в Питере.