2011-12-12 71 views
0

我已经设置了一个WordPress网站,我遇到了一个非常奇怪的问题。我为订阅者设置了一个登录页面,如果登录失败,我希望页面重定向到我的自定义登录页面,而不是wp-login.php页面。要解决这个问题,我已经将下面的代码添加到wp-login.php中。重定向功能不再在WordPress的网站上工作

// if ($shake_error_codes && $wp_error->get_error_code() && //in_array($wp_error->get_error_code(), $shake_error_codes)) 
//  add_action('login_head', 'wp_shake_js', 12); 

//I have replaced the code on line 55 with the following 
    if ($shake_error_codes && $wp_error->get_error_code() && in_array($wp_error->get_error_code(), $shake_error_codes)){ 
header("Location: index.php/login?login_error=1"); exit; 
    } 

的重定向不工作,我也用了wp_redirect()函数 代替头()的,它仍然不会重定向。

这不仅是wp-login页面出现此问题,我还测试了其他页面上的重定向。例如,在我的家庭模板页面home.php中,为了测试的目的,我在页面顶部添加了以下代码。

$location = 'http://www.google.com'; 
wp_redirect($location); 

而且还

$location = 'http://www.google.com'; 
header("Location: $location"); 

我不明白为什么任何重定向将无法正常工作,没有给出所以其像重定向被阻止的错误。什么能可能会造成这个问题,请协助,谢谢

只是一个更新,我加入以下代码到网页

if(headers_sent()){echo "sent";} 

顶部它打印出“发送”这样的标题已经已发送,寻找到这个

+0

显示页面还是只是一个空白页面?假设是重定向时,你看到了什么?您是否在header()之前尝试了任何调试方法,如var_dump('test')以确保它到达那里?你有没有设置PHP来显示错误? – Vigrond

+0

没有显示错误,重定向只是被忽略,页面加载正常,不,是的PHP设置为显示错误,如果我添加任何无效的代码,我会得到一个错误。我会尝试你提到的调试方法,并回复给你谢谢 – Charl777

回答

0

试试这个:

<?php wp_redirect('http://www.example.com', 301); exit; ?> 

HTTP/1.1状态码302是临时重定向。如果页面已永久移动,请使用HTTP状态代码301.

+0

bizzare我试过你的解决方案,但它不工作,不幸的是,你可能指出我在正确的方向。周五我将网站的临时网址更改为域名。我不知道这是否是原因。 – Charl777

+0

charl请清除您的主机或创建一个新文件夹,然后安装一个干净的wordpress,然后再次使用wp_redirect并告诉我结果。 – bizzr3

+0

不幸的是,这个网站已经生活和非常繁忙,所以干净的安装将是最后的手段,我会让你更新我的进度调试这个错误 – Charl777

相关问题