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 ); }