Snippet: Return to current page AFTER login
On the /admin/settings/menu-settings page I wanted to add a login link that auto-redirected user back to "current page" if they were logged out.

<?php
/*
* Front-end login helper for WordPress
*
* What it does:
* 1. Watches for visits to /login-return
* 2. Looks at the page the visitor came from
* 3. Sends them to wp-login.php with that page added as redirect_to
* 4. After login, WordPress sends them back to that page
*
* Example:
* /space/say-hello/home
* -> click /login-return
* -> redirect to /wp-login.php?redirect_to=that-page
* -> after login, return to that page
*/
add_action('template_redirect', function () {
global $wp;
// Change this if you want a different trigger URL.
// Example: 'member-login', 'signin', 'go-login'
$login_return_slug = 'login-return';
if ( trim($wp->request, '/') !== $login_return_slug ) {
return;
}
// Get the page the visitor came from.
$referrer = wp_get_referer();
if (
$referrer &&
strpos($referrer, 'wp-login.php') === false &&
strpos($referrer, 'wp-admin') === false &&
strpos($referrer, '/' . $login_return_slug) === false
) {
wp_safe_redirect( wp_login_url( $referrer ) );
exit;
}
// Fallback: if no usable referrer exists, send them to normal login
wp_safe_redirect( wp_login_url( home_url('/') ) );
exit;
}, 1);