Using WordPress ‘logout_url’ PHP filter

The logout_url WordPress PHP Filter allows you to modify the logout URL before it is output on your site.

Usage

add_filter('logout_url', 'your_function_name', 10, 2);

function your_function_name($logout_url, $redirect) {
    // Your custom code here
    return $logout_url;
}

Parameters

  • $logout_url (string) – The HTML-encoded logout URL.
  • $redirect (string) – Path to redirect to on logout.

More information

See WordPress Developer Resources: logout_url

Examples

Custom Redirect After Logout

Modify the logout URL to redirect users to the homepage after logging out.

add_filter('logout_url', 'custom_logout_redirect', 10, 2);

function custom_logout_redirect($logout_url, $redirect) {
    // Redirect to homepage
    $redirect = home_url('/');
    $logout_url = add_query_arg('redirect_to', urlencode($redirect), $logout_url);
    return $logout_url;
}

Append Custom Query Parameter

Add a custom query parameter to the logout URL.

add_filter('logout_url', 'append_custom_query_parameter', 10, 2);

function append_custom_query_parameter($logout_url, $redirect) {
    // Add custom query parameter
    $logout_url = add_query_arg('custom_param', 'value', $logout_url);
    return $logout_url;
}

Change Logout URL for a Custom Logout Page

Change the logout URL to a custom logout page.

add_filter('logout_url', 'change_to_custom_logout_page', 10, 2);

function change_to_custom_logout_page($logout_url, $redirect) {
    // Change to custom logout page
    $logout_url = home_url('/custom-logout/');
    return $logout_url;
}

Add a Custom Redirect for Specific User Roles

Redirect users with specific roles to a custom page after logging out.

add_filter('logout_url', 'redirect_by_user_role', 10, 2);

function redirect_by_user_role($logout_url, $redirect) {
    // Get current user
    $user = wp_get_current_user();

    // Check for specific user role
    if (in_array('editor', $user->roles)) {
        $redirect = home_url('/editors-logout/');
    } elseif (in_array('subscriber', $user->roles)) {
        $redirect = home_url('/subscribers-logout/');
    }

    $logout_url = add_query_arg('redirect_to', urlencode($redirect), $logout_url);
    return $logout_url;
}

Remove the Redirect Parameter from the Logout URL

Remove the redirect parameter from the logout URL, so the user stays on the same page after logging out.

add_filter('logout_url', 'remove_redirect_parameter', 10, 2);

function remove_redirect_parameter($logout_url, $redirect) {
    // Remove the redirect parameter
    $logout_url = remove_query_arg('redirect_to', $logout_url);
    return $logout_url;
}