Функция get_site_url() в WordPress: синтаксис, примеры использования

# Функция GET_SITE_URL() │ WP 3.0.0

Функция get_site_url() позволяет получить URL вашего сайта, где доступны файлы приложения WordPress (например, wp-blog-header.php или папка wp-admin).

## Что она делает?

Эта функция возвращает URL сайта с правильным протоколом: 'https', если используется SSL (защищенное соединение), и 'http', если нет. Если вы указываете $scheme как 'http' или 'https'', то это значение будет иметь приоритет.

### Используют: 

- site_url()
- get_admin_url()

**Время выполнения:**
- 1 раз — 0.000067 сек (очень быстро)
- 50000 раз — 2.20 сек (по-прежнему быстро)

## Хуки функции

- site_url

## Что возвращает?

Строку — ссылку на сайт с опциональным добавлением пути.

## Как использовать

```php
get_site_url( $blog_id, $path, $scheme );
  • $blog_id (int|null): ID сайта. По умолчанию null (текущий сайт).
  • $path (string): Путь относительно URL сайта. По умолчанию ''.
  • $scheme (string|null): Протокол, который определяет контекст URL. Может принимать значения: 'http', 'https', 'login', 'login_post', 'admin' или 'relative'. По умолчанию null.

Примеры использования

Пример 1: Простое использование

echo get_site_url();

Вывод: http://www.example.com

Если WordPress установлен в подпапке, функция вернёт:

https://www.example.com/sub/folder

Пример 2: Указываем протокол явно

echo get_site_url( null, '/wp-content/themes/', 'https' );

Вывод: https://example.com/wp-content/themes/

Пример 3: Получаем только имя домена

Если вам нужно получить только имя хоста/домен без путей и схемы, используйте:

echo parse_url( get_site_url(), PHP_URL_HOST ); // wp-kama.com

Код функции

function get_site_url( $blog_id = null, $path = '', $scheme = null ) {
    if ( empty( $blog_id ) || ! is_multisite() ) {
        $url = get_option( 'siteurl' );
    } else {
        switch_to_blog( $blog_id );
        $url = get_option( 'siteurl' );
        restore_current_blog();
    }

    $url = set_url_scheme( $url, $scheme );

    if ( $path && is_string( $path ) ) {
        $url .= '/' . ltrim( $path, '/' );
    }

    /**
     * Фильтрует URL сайта.
     *
     * @since 2.7.0
     *
     * @param string      $url     Полный URL сайта с протоколом и путём.
     * @param string      $path    Путь относительно URL сайта. Пустая строка, если путь не указан.
     * @param string|null $scheme  Протокол, который определяет контекст URL сайта. Принимает значения 'http', 'https', 'login',
     *                             'login_post', 'admin', 'relative' или null.
     * @param int|null    $blog_id ID сайта или null для текущего сайта.
     */
    return apply_filters( 'site_url', $url, $path, $scheme, $blog_id );
}

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

Опции сайта (настройки)

  • add_option()
  • admin_url()
  • delete_option()
  • get_bloginfo()
  • get_home_path()
  • get_home_url()
  • get_option()
  • home_url()
  • is_ssl()
  • site_url()
  • update_option()
  • wp_get_environment_type()
  • wp_load_alloptions()

Leave a Reply

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