get_home_url()WP 3.0.0

Gets the URL of the site's main page (without / at the end). You can specify the site ID of the network. Considers the protocol (http, https).

The basis for the function home_url().

Returns the value of the option get_option('home') with the correct protocol. The protocol will be:

  • https — when the condition is_ssl() is met.
  • http — in other cases.

The protocol can be forcibly rewritten by specifying the third parameter $scheme.

Constant WP_HOME.
In wp-config.php, you can specify the constant WP_HOME, then this function will get the value of this constant instead of the value from the database.

Use this function only when you need to get the site URL, not the WordPress URL (where the core files are located) (see General Settings in WordPress). To get the WordPress URL, use get_site_url().

1 time — 0.000065 sec (very fast) | 50000 times — 0.39 sec (very fast) | PHP 7.1.2, WP 4.7.3
Hooks from the function

Returns

String. String, URL to the blog's main page.

Usage

get_home_url( $blog_id, $path, $scheme );
$blog_id(int|null)
ID of the blog whose URL needs to be obtained.
Default: null (current blog)
$path(string)
Path to the blog's main page. A string that will be appended to the blog's URL (/qwe).
Default: ''
$scheme(string)
The scheme in which to return the URL. Can be: http, https, relative.
Default: null

Examples

0

#1 Let's display the blog's URL

<?php echo get_home_url(); ?>

http://example.com

<?php echo get_home_url( null, 'wp-admin/', 'https' ); ?>

https://example.com/wp-admin/

0

#2 Demo

echo get_home_url();                             // http://example.com

echo get_home_url( null, '/' );                  // http://example.com/

echo get_home_url( null, 'blog', 'relative' );   // /blog

echo get_home_url( null, 'blog' );               // https://example.com/blog

echo get_home_url( null, '/blog', 'https' );     // https://example.com/blog

echo get_home_url( null, '#hash', 'https' );     // https://example.com/#hash

echo get_home_url( null, '//foo.bar/foo' );      // http://example.com/foo.bar/foo

echo get_home_url( null, 'http://foo.bar/foo' ); // http://example.com/http://foo.bar/foo

echo get_home_url( null, '/mypage?id=123' );    // https://example.com/mypage?id=123

Changelog

Since 3.0.0 Introduced.

get_home_url() code WP 6.8.1

function get_home_url( $blog_id = null, $path = '', $scheme = null ) {
	$orig_scheme = $scheme;

	if ( empty( $blog_id ) || ! is_multisite() ) {
		$url = get_option( 'home' );
	} else {
		switch_to_blog( $blog_id );
		$url = get_option( 'home' );
		restore_current_blog();
	}

	if ( ! in_array( $scheme, array( 'http', 'https', 'relative' ), true ) ) {
		if ( is_ssl() ) {
			$scheme = 'https';
		} else {
			$scheme = parse_url( $url, PHP_URL_SCHEME );
		}
	}

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

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

	/**
	 * Filters the home URL.
	 *
	 * @since 3.0.0
	 *
	 * @param string      $url         The complete home URL including scheme and path.
	 * @param string      $path        Path relative to the home URL. Blank string if no path is specified.
	 * @param string|null $orig_scheme Scheme to give the home URL context. Accepts 'http', 'https',
	 *                                 'relative', 'rest', or null.
	 * @param int|null    $blog_id     Site ID, or null for the current site.
	 */
	return apply_filters( 'home_url', $url, $path, $orig_scheme, $blog_id );
}