您的代码完全有缺陷-更不用说登录后无法重定向到HTTP referer。。。因为referer现在是登录页面。相反,请使用login_redirect 过滤器:
add_filter( \'login_redirect\', function ( $redirect_to, $requested_redirect_to ) {
if ( ! $requested_redirect_to ) {
$redirect_to = wp_get_referer();
}
return $redirect_to;
}, 10, 2 );
请注意,我们仅覆盖
$redirect_to 如果
$requested_redirect_to 为“空”,否则:
它会破坏redirect_to WordPress和许多插件都使用URL参数来设置特定的登录后重定向,而不是默认重定向(我见过太多次插件完全破坏了这一功能)。
如果我们总是将其设置为referer,那么最终会出现登录页面本身(如前所述)。这是因为当用户第一次登录页面时,WordPress会设置隐藏redirect_to 值为的字段$redirect_to. 在后续页面加载(即登录)时,这将成为$requested_redirect_to 价值