重定向功能在Wordpress站点上不再起作用

时间:2011-12-12 07:27:36

标签: php wordpress

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

    //  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() 函数而不是header(),它仍然没有重定向。

不仅是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";}

打印出“已发送”,因此标题已经发送,查看此

1 个答案:

答案 0 :(得分:0)

试试这个:

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

注释

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