我使用的是一个自定义登录页面,在函数中有一个脚本。重定向到自定义“错误登录”页面(向登录URL添加参数)的php,因此它可以在同一页面而不是本地登录页面中显示错误。
但在某些情况下,当有人尝试访问私人页面后被重定向到该页面时,该登录页面已经包含一些参数。
例如:
正常情况:他们试图访问:网站。com/登录。如果尝试登录时出错,我的脚本将重定向到网站。com/登录?登录=空,他们可以重试。
问题案例:他们试图访问网站。com/受保护页/专用,它们会自动重定向到网站。com/登录?成员=%2Fprotected页%2Fprivate%2。如果尝试登录时出错,我的脚本实际上会重定向到网站。com/登录?login=空(与常规情况相同),我试图实现的是重定向到网站。com/登录?成员=%2Fprotected page%2Fprivate%2(&P);登录=出现错误时为空。
在URL中保留此“?members”参数,允许表单在成功登录后重定向到之前尝试访问的前一页。否则,对于常规情况,它们将重定向到常规仪表板。
错误时实际管理重定向的脚本如下:
添加\\u操作(\'验证\',\'检查\\u用户名\\u密码\',1,3);函数check\\u username\\u password($登录,$用户名,$密码){
$referrer = $_SERVER[\'HTTP_REFERER\'];
if( !empty( $referrer ) && !strstr( $referrer,\'wp-login\' ) && !strstr( $referrer,\'wp-admin\' ) ) {
if( $username == "" || $password == "" ){
wp_redirect( get_permalink( 20 ) . "?login=empty" );
exit;
}
}
因此,这里创建错误URL的重要部分是:
wp_redirect( get_permalink( ID ) . "?login=empty" );
我可以使用“$\\u get[”members“]”获取其他UTL参数,如果我执行“echo$\\u get[”wlfrom“]”它在页面中成功显示参数。但即使看起来很简单,我也无法将此参数添加到URL。I\'v迄今为止的尝试:
#1. wp_redirect( get_permalink( ID ) . "?members=" . $_GET["members"] . "?login=empty" );
#2. wp_redirect( get_permalink( ID ) . "?members=" . echo $_GET["members"] . "?login=empty" );
#3. $param = array(\'members\');
wp_redirect( get_permalink( ID ) . "?members=" . $param . "?login=empty" );
//This one returns website.com/?members=array/?login=empty
#4.$param = $_SERVER["PHP_SELF"];
wp_redirect( $param . "?login=empty" );
// This one I cannot use because it displays the native login URL, not my permalink, that\'s why I need to use "get_permalink" for the first part of the URL
最近,我尝试了这个听起来像是迄今为止最好的解决方案:
登录表单中的新隐藏字段:
<input type="hidden" name="members" value="<?php echo @$_REQUEST[\'members\']; ?>">
替换:wp\\u redirect(get\\u permalink(ID))。“?登录=空”);通过
$queryarg=\'?login=empty\';
if(isset($_REQUEST[\'members\']) && $_REQUEST[\'members\']!=\'\'){
$queryarg .=\'&members=\'$_REQUEST[\'members\'];
}
wp_redirect( get_permalink( ID ) . $queryarg );
但此解决方案已返回:
Parse error: syntax error, unexpected \'$_REQUEST\' (T_VARIABLE) on line 113.
该行涉及beeing$queryarg。=\'&;成员=\'$\\u请求[\'members\']
那么,有什么解决方案可以做到这一点吗?为了使用当前URL中的参数,我应该用什么填写“wp\\u redirect”?
非常感谢。