【问题标题】:why wp_redirect() is showing me header information - headers already sent by ..?为什么 wp_redirect() 向我显示标头信息 - 标头已由..发送?
【发布时间】:2019-10-14 19:35:48
【问题描述】:

我正在为登录页面使用名为 login.php 的自定义模板文件。

Login.php 代码:

<?php
/**
 * Template Name: Login
 *
 * @package mytheme
 */

get_header();
the_post();
if(is_user_logged_in()){
    wp_redirect(site_url('/'));
    exit();
}
?>

在这里,在这段代码中,我是说如果用户已经登录,则重定向到站点主页。但现在它显示这样的错误消息:

警告:无法修改标头信息 - 标头已由 (输出开始于 D:\xampp\htdocs\mytheme\wp-includes\class.wp-styles.php:242) 在 D:\xampp\htdocs\themechum\wp-includes\pluggable.php 在第 1251 行

【问题讨论】:

    标签: wordpress


    【解决方案1】:

    请使用

    if(is_user_logged_in()){
        wp_redirect(site_url('/'));
        exit();
    }
    

    以上 get_header();

    wp_redirect() 上面不能使用html标签;

    这就是为什么您收到错误“标头已发送”

    【讨论】:

    • 哇,太好了。它可以工作,但为什么我需要使用 get_header() 上面的函数?
    • 因为 get_header() 是一个包含 HTML 的头文件,如果该函数上方有 HTML,重定向功能将不起作用。所以现在 HTML 在重定向功能之后启动并且它可以工作
    猜你喜欢
    • 2011-11-14
    • 1970-01-01
    • 2012-07-21
    • 1970-01-01
    • 1970-01-01
    • 2011-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多