get_page_link() WP 1.5.0

Отримує URL-адресу (посилання) постійної сторінки WordPress (записи типу page).

Розуміє, коли сторінку вказано як головну сторінку сайту: див. опцію page_on_front .

Замість цієї функції майже завжди краще використовувати get_permalink() – універсальна функція, яка використовує цю функцію, коли потрібно.

Працює на основі:
_get_page_link()
Основа для:
get_permalink()
1 раз – 0.0038071 сек
(дуже повільно) | 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

Приклади

0

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

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *