get_page_link()
Отримує URL-адресу (посилання) постійної сторінки WordPress (записи типу page).
Розуміє, коли сторінку вказано як головну сторінку сайту: див. опцію page_on_front .
Замість цієї функції майже завжди краще використовувати get_permalink() – універсальна функція, яка використовує цю функцію, коли потрібно.
Працює на основі:
_get_page_link()
_get_page_link()
Основа для:
get_permalink()
get_permalink()
1 раз – 0.0038071 сек
(дуже повільно) | 50000 разів – 7.68 сек
(швидко)
(дуже повільно) | 50000 разів – 7.68 сек
(швидко)
Хуки з функції
get_page_link($post, $leavename, $sample);
-
$post
(число | WP_Post) -
ID сторінки чи її об’єкт.
Типово: global $post -
$leavename
(true|false) -
Чи потрібно залишити холдер
%pagename%
як є? true – залишити холдер без заміни його на ім’я сторінки. Ім’я сторінки збирається з імені поточної сторінки та батьківських, наприклад
parent_page_name/current_page_name
.
Типово: false -
$sample
(true|false) -
true – отримати зразок посилання з урахуванням структури ЧПК. Це може бути потрібне, коли посилання форсовано повертається в простому вигляді (не ЧПУ –
/?pagename=contacts ), а нам потрібно отримати саме ЧПУ (
/contacts ).
Типово: false
Приклади
#1 Демонстрація роботи
// тип запису page - для якого призначена ця функція
echo get_page_link(10124); // https://wp-doc.com/about/privacy-policy
// залишимо холдер
echo get_page_link(10124, true); // https://wp-doc.com/%pagename%
УВАГА: для типу запису post та інших довільних типів записів функція не призначена, тому вона може повернути неправильний результат.
echo get_page_link(13564); // https://wp-doc.com/atributy-scrset-sizes
// правильне посилання буде таке
echo get_permalink(13564); // https://wp-doc.com/id_13564/atributy-scrset-sizes.html
список змін
З версії 1.5.0 | Введено. |
Код get_page_link() get page link WP 6.0.2
function get_page_link( $post = false, $leavename = false, $sample = false ) {
$post = get_post($post);
if ( 'page' === get_option( 'show_on_front' ) && get_option( 'page_on_front' ) == $post->ID ) {
$link = home_url('/');
} else {
$link = _get_page_link($post, $leavename, $sample);
}
/**
* Filters permalink for a page.
*
* @ Since 1.5.0
*
* @param string $link The page's permalink.
* @param int $post_id The ID of the page.
* @param bool $sample Це зразок сторінки.
*/
return apply_filters( 'page_link', $link, $post->ID, $sample );
}