get_site_url()WP 3.0.0

Gets the site URL.

The function returns the option siteurl: get_option('siteurl'). It also sets the site protocol: https - if is_ssl() is triggered or http. You can forcefully specify the protocol in the $scheme parameter.

By specifying the blog address, we can move all WordPress files to a separate directory. This is done for convenience when WordPress files in the main directory interfere with the user and they would like to move them to a subdirectory of the main directory. Read how to do this here: https://codex.wordpress.org/Размещаем_WordPress_в_отдельном_каталоге

The constant WP_SITEURL - in wp-config.php you can specify the constant WP_SITEURL, then its value will be taken for this option, not the value from the database.

Use this function when you need to get the WordPress URL, not the site URL (see General Settings).

Use home_url() when you need to get the site URL (front).

1 time — 0.000067 sec (very fast) | 50000 times — 2.20 sec (fast)
Hooks from the function

Returns

String.

Usage

$site_url = get_site_url( $blog_id, $path, $scheme );
$blog_id(number)
ID of the blog.
Default: current blog (null)
$path(string)
Path to the site page that will be added to the URL.
Default: ''
$scheme(string)

Scheme according to which the URL should be modified. Can be:

http
https
relative    — will return a relative URL (without the domain).
login       — login page protocol
login_post
admin
rest
rpc
null        — current site protocol is_ssl()

For more details see set_url_scheme()

Default: null

Examples

0

#1 Demo

echo get_site_url();

// Displays: http://www.example.com

If WP installed into subfolder, returns:

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

#2 Let's specify the protocol forcibly

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

// Displays: https://example.com/wp-content/themes/
0

#3 Get just the hostname

To get just the hostname/domain component of the Site URL (without paths, schema, etc.) you could use the following:

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

Changelog

Since 3.0.0 Introduced.

get_site_url() code WP 6.9.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 );
}