site_url( string $path = '', string|null $scheme = null ): string

Retrieves the URL for the current site where WordPress application files (e.g. wp-blog-header.php or the wp-admin/ folder) are accessible.


Returns the ‘site_url’ option with the appropriate protocol, ‘https’ if is_ssl() and ‘http’ otherwise. If $scheme is ‘http’ or ‘https’, is_ssl() is overridden.

Top ↑


$path string Optional
Path relative to the site URL.

Default: ''

$scheme string|null Optional
Scheme to give the site URL context. See set_url_scheme() .
More Arguments from set_url_scheme( ... $scheme ) Scheme to give $url. Currently 'http', 'https', 'login', 'login_post', 'admin', 'relative', 'rest', 'rpc', or null.

Default: null

Top ↑


string Site URL link with optional path appended.

Top ↑


File: wp-includes/link-template.php. View all references

function site_url( $path = '', $scheme = null ) {
	return get_site_url( null, $path, $scheme );

Top ↑


Version Description
3.0.0 Introduced.

Top ↑

User Contributed Notes

  1. Skip to note 1 content
    Contributed by Codex


    $url = site_url();
    echo $url;

    Output: or

    (Note the lack of a trailing slash)

    $url = site_url( '/secrets/', 'https' );
    echo $url;

    Output: or

  2. Skip to note 2 content
    Contributed by mirgcire

    The contributed example is unclear because it states that the result is one of two options, but no information is given to determine which option to expect. Are we to assume it is random, and therefore must filter out the spurious occurrences of “wordpress”?

You must log in before being able to contribute a note or feedback.