get_site_url()WP 3.0.0

Получает URL сайта.

Функция возвращает опцию siteurl: get_option('siteurl'). Также устанавливает протокол сайта: https - если срабатывает is_ssl() или http. Можно принудительно указать протокол в параметре $scheme.

Указывая адрес блога, мы может переместить все файлы WordPress в отдельный каталог. Делается это для удобства, когда пользователю мешают файлы WordPress в основном каталоге и их хотелось бы убрать в подкаталог основного каталога. Как это сделать читайте здесь: https://codex.wordpress.org/Размещаем_WordPress_в_отдельном_каталоге

Константа WP_SITEURL - в wp-config.php можно указать константу WP_SITEURL, тогда её значение будет браться для этой опции, а не значение из БД.

Используйте эту функцию, когда нужно получить URL адрес WordPress, а не URL сайта (см. Общие настройки).

Используте home_url(), когда нужно поулчить URL сайта (фронта).

Основа для: site_url(), get_admin_url()
1 раз — 0.000067 сек (очень быстро) | 50000 раз — 2.20 сек (быстро)
Хуки из функции

Возвращает

Строку.

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

$site_url = get_site_url( $blog_id, $path, $scheme );
$blog_id(число)
ID блога.
По умолчанию: текущий блог (null)
$path(строка)
Пусть к странице сайта, который будет добавлен к URL.
По умолчанию: ''
$scheme(строка)

Схема в соответствии с которой нужно изменять URL. Может быть:

http
https
relative    — вернет относительный URL (без домена).
login       — протокол страницы авторизации
login_post
admin
rest
rpc
null        — текущий протокол сайта is_ssl()

Подробнее смотрите set_url_scheme()

По умолчанию: null

Примеры

1

#1 Демонстрация работы функции:

echo get_site_url();

// вернет: http://www.example.com
-2

#2 Укажем протокол принудительно

echo get_site_url( null, '', 'https' );

// получим: https://example.com

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

С версии 3.0.0 Введена.

Код get_site_url() WP 6.7.1

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, '/' );
	}

	/**
	 * Filters the site URL.
	 *
	 * @since 2.7.0
	 *
	 * @param string      $url     The complete site URL including scheme and path.
	 * @param string      $path    Path relative to the site URL. Blank string if no path is specified.
	 * @param string|null $scheme  Scheme to give the site URL context. Accepts 'http', 'https', 'login',
	 *                             'login_post', 'admin', 'relative' or null.
	 * @param int|null    $blog_id Site ID, or null for the current site.
	 */
	return apply_filters( 'site_url', $url, $path, $scheme, $blog_id );
}
4 комментария
    Войти