Функция get_page_uri() в WordPress: описание, примеры использования, изменения [WP 1.5.0]

# GET_PAGE_URI() │ WP 1.5.0

Фу��кция get_page_uri() используется для формирования URI (адреса) страницы в WordPress.

## Описание функции

При этом подстраницы располагаются в "каталоге" под именем родительской страницы.

### Время выполнения
- 1 раз — 0.000237 сек (быстро)
- 50000 раз — 3.85 сек (быстро)

## Крюки функции

- get_page_uri

## Возвращаемое значение

Функция возвращает либо строку с URI страницы, либо false в случае ошибки.

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

```php
get_page_uri( $page );

Параметры

  • $page (WP_Post | object | int) — ID страницы или объект WP_Post.
    • По умолчанию: глобальная переменная $post.

Примеры

Пример 1: Получение пути к текущей странице

Предположим, у нас есть страница с ID 1544, у которой метка mypage, и она является дочерней по отношению к родительской странице. Тогда:

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

Изменения в версии

  • С 1.5.0 — Функция была введена.
  • С 4.6.0 — Параметр $page стал необязательным.

Код функции get_page_uri()

Вот как выглядит реализация функции:


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

/**
 * Фильтрует URI для страницы.
 *
 * @param string  $uri  URI страницы.
 * @param WP_Post $page Объект страницы.
 */
return apply_filters( 'get_page_uri', $uri, $page );

}

Связанные функции

Вспомогательные функции

  • array_is_list()
  • array_key_first()
  • array_key_last()
  • calendar_week_mod()
  • checked()
  • disabled()
  • fetch_feed()
  • wp_die()
  • wp_html_excerpt()
  • WP_List_Util()
  • wp_parse_str()
  • wp_redirect()
  • wp_slash()
  • wp_trim_words()

Страницы

  • get_all_page_ids()
  • get_page_by_path()
  • get_page_children()
  • get_page_link()
  • get_page_template_slug()
  • get_pages()
  • get_post_ancestors()
  • page_template_dropdown()
  • parent_dropdown()
  • wp_dropdown_pages()
  • wp_link_pages()
  • wp_list_pages()
  • wp_page_menu()

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *