apply_filters( ‘login_url’, string $login_url, string $redirect, bool $force_reauth )

Filters the login URL.

Parameters

$login_urlstring
The login URL. Not HTML-encoded.
$redirectstring
The path to redirect to on login, if supplied.
$force_reauthbool
Whether to force reauthorization, even if a cookie is present.

More Information

login_url is a filter applied to the url returned by the function wp_login_url()

Source

return apply_filters( 'login_url', $login_url, $redirect, $force_reauth );

Changelog

VersionDescription
4.2.0The $force_reauth parameter was added.
2.8.0Introduced.

User Contributed Notes

  1. Skip to note 4 content

    Here’s an example of filtering the `login_url` to specify a custom one:

    add_filter( 'login_url', 'smyles_custom_login_url', 10, 3 );
    /**
     * Filters the login URL.
     *
     * @since 2.8.0
     * @since 4.2.0 The `$force_reauth` parameter was added.
     *
     * @param string $login_url    The login URL. Not HTML-encoded.
     * @param string $redirect     The path to redirect to on login, if supplied.
     * @param bool   $force_reauth Whether to force reauthorization, even if a cookie is present.
     *
     * @return string
     */
    function smyles_custom_login_url( $login_url, $redirect, $force_reauth ){
    	// This will append /custom-login/ to you main site URL as configured in general settings (ie https://domain.com/custom-login/)
    	$login_url = site_url( '/custom-login/', 'login' );
    	if ( ! empty( $redirect ) ) {
    		$login_url = add_query_arg( 'redirect_to', urlencode( $redirect ), $login_url );
    	}
    	if ( $force_reauth ) {
    		$login_url = add_query_arg( 'reauth', '1', $login_url );
    	}
    	return $login_url;
    }
  2. Skip to note 5 content

    Tested this login_url filter and it works fine for login links on the website, for example on blog pages.
    The filter will not work for a browser URL like /wp-login.php.

    This can be useful in case you have a custom login form for subscribers, while administrators still login with the WordPress core login form when two-factor authentication is enabled.

    A custom login form like those of User Registration plugin will not work with 2FA. This is where the core login form is still useful.

  3. Skip to note 6 content

    Examples migrated from Codex:

    The following example would return a login URL http://example.com/my-login-page/ for the wp_login_url() function:

    add_filter( 'login_url', 'my_login_page', 10, 3 );
    function my_login_page( $login_url, $redirect, $force_reauth ) {
        return home_url( '/my-login-page/?redirect_to=' . $redirect );
    }

    Same as above, but uses the add_query_arg() function for adding the redirect_to parameter and is expanded for readability.

    add_filter( 'login_url', 'my_login_page', 10, 3 );
    function my_login_page( $login_url, $redirect, $force_reauth ) {
        $login_page = home_url( '/my-login-page/' );
        $login_url = add_query_arg( 'redirect_to', $redirect, $login_page );
        return $login_url;
    }

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