【问题标题】:Redirect functions not working anymore on Wordpress Site重定向功能在 Wordpress 网站上不再起作用
【发布时间】:2011-12-12 07:27:35
【问题描述】:

我已经建立了一个 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";}

它打印出“已发送”,因此标头已经发送,正在查看

【问题讨论】:

  • 是显示页面还是只是一个空白页面?当假设有重定向时,您会看到什么?您是否在 header() 之前尝试过任何调试方法,例如 var_dump('test') 以确保它到达那里?你有没有设置 PHP 显示错误?
  • 没有显示错误,重定向被忽略并且页面正常加载,不,是的 PHP 设置为显示错误,如果我添加任何无效代码,我会收到错误消息。我会尝试您提到的调试方法并回复您,谢谢

标签: php wordpress


【解决方案1】:

试试这个:

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

注意事项

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

【讨论】:

  • bizzare 我已经尝试过您的解决方案,但不幸的是它不起作用,您可能已经为我指明了正确的方向。星期五,我将站点的临时 URL 更改为域名。不知道是不是这个原因。
  • charl 请清除您的主机或创建一个新文件夹,然后安装一个干净的 wordpress ,然后再次使用 wp_redirect 并告诉我结果。
  • 不幸的是,这个站点已经上线并且非常繁忙,所以最后的手段是全新安装,我会及时通知您调试此错误的进度
  • 好的,只需通过在单独的文件夹中创建一个简单的 php 文件来测试功能。祝你好运
猜你喜欢
  • 1970-01-01
  • 2019-02-18
  • 1970-01-01
  • 2018-07-11
  • 2018-10-04
  • 2014-09-07
  • 2013-09-07
  • 2019-07-15
  • 1970-01-01
相关资源
最近更新 更多