WP_redirect无法正常工作(标头已在pluggable.php中发送)

时间:2015-07-12 09:36:31

标签: php wordpress redirect

我想在模板文件中使用此代码:

if ( wp_is_mobile() ) {
wp_redirect( "/shop-mobile", $status );
}

但它说:标题已经由/ filewithcode发送到第1196行的/ wp_includes / pluggable.php

我试图从空格中清除可插拔文档..这里还有什么问题?谢谢

2 个答案:

答案 0 :(得分:2)

"修复已发送的"标题"问题是,您需要将所有表单处理从页面底部移动到页面顶部。如果您需要调用wp_redirect(),则必须在向页面打印任何内容(HTML或其他任何内容)之前进行该调用。"

参考: https://wordpress.stackexchange.com/questions/81566/wp-redirect-headers-already-sent-after-front-end-submission-form

您可以阅读此内容以获取有关此问题的更多说明

How to fix "Headers already sent" error in PHP

答案 1 :(得分:0)

确保wp_redirect函数上方的代码尚未将标头信息发送到服务器。

在以下某些情况下,标题信息将发送到服务器:

  1. print,echo

  2. <?php or space after ?>

  3. 之前的空格

    使用以下方法检查标题是否已发送:

    if (headers_sent()) {
         die("Redirect failed. Please click on this link: <a href=...>");
    }
    else{
         exit(header("Location:/test.php"));
    }
    

    请参阅以下链接以获取进一步的指导。How to fix "Headers already sent" error in PHP