get_page_uri()WP 1.5.0

Получает путь (URL без домена) до указанной постоянной страницы. Собирает ярлыки текущей и всех родительских страниц и объединяет их слэшем /.

Если у страницы есть родительские страницы, то они будут добавлены в путь через слэш /: roditel/page_name.

Когда нужно получить УРЛ постоянной страницы, почти всегда используется функция get_permalink(). Она к тому же работает с кэшем, а значит быстрее...

Работает на основе: get_post()
1 раз — 0.000237 сек (быстро) | 50000 раз — 3.85 сек (быстро)
Хуки из функции

Возвращает

Строку|false. URI страницы, false - в случае ошибки.

Использование

get_page_uri( $page );
$page(WP_Post/объект/число)
ID или объект страницы, URI которой нужно получить. С версии 4.6. параметр стал необязательным.
По умолчанию: 0 (текущая запись)

Примеры

0

#1 Получим путь до текущей страницы

Допустим у нас есть страница 1544 с ярлыком mypage и она является дочерней к parent. Тогда:

echo get_page_uri( 1544 ); // вернет: parent/mypage

Список изменений

С версии 1.5.0 Введена.
С версии 4.6.0 The $page parameter was made optional.

Код get_page_uri() WP 6.7.1

function get_page_uri( $page = 0 ) {
	if ( ! $page instanceof WP_Post ) {
		$page = get_post( $page );
	}

	if ( ! $page ) {
		return false;
	}

	$uri = $page->post_name;

	foreach ( $page->ancestors as $parent ) {
		$parent = get_post( $parent );
		if ( $parent && $parent->post_name ) {
			$uri = $parent->post_name . '/' . $uri;
		}
	}

	/**
	 * Filters the URI for a page.
	 *
	 * @since 4.4.0
	 *
	 * @param string  $uri  Page URI.
	 * @param WP_Post $page Page object.
	 */
	return apply_filters( 'get_page_uri', $uri, $page );
}