You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

排查WordPress中Cannot modify header information报错问题

排查WordPress "Cannot modify header information" 报错及解决方法

问题现象

  • 触发报错:Warning: Cannot modify header information - headers already sent by (output started at ~ wp-content/plugins/insert-headers-and-footers/includes/class-wpcode-snippet-execute.php(292) : eval()'d code:4)
  • 实际影响:部分文章页面崩溃,出现页眉页脚重复调用的异常显示

报错核心原因

这个报错的本质是HTTP头发送时机冲突:WordPress要求所有HTTP头(比如跳转、缓存控制)必须在任何页面内容输出之前发送。一旦有内容(哪怕是一个空格、换行、PHP错误信息)提前输出到浏览器,后续再发送HTTP头就会触发该警告。

报错指向WP Code Snippets插件的class-wpcode-snippet-execute.php第292行的eval( $code );,说明是通过该插件添加的自定义代码片段输出了内容,导致了冲突。

自定义文章类型代码的问题

添加的自定义文章类型代码存在多处语法错误,直接导致PHP输出错误信息,触发了页眉冲突:

  1. 提前调用register_post_type:函数开头就执行register_post_type( ' modality_post', $args);,此时$args还未定义,PHP会抛出错误并输出到页面
  2. 无效的数组包裹写法:用array()把$supports、$labels、$args的赋值包裹起来,这是完全错误的语法,会直接引发解析错误
  3. 重复注册自定义文章类型:函数末尾再次调用register_post_type,即使前面的错误修复,重复注册也会引发异常
  4. 参数含多余空格:自定义文章类型的slug' modality_post'前面有空格,会导致URL和查询逻辑异常

修复后的正确代码

替换原自定义代码为以下版本:

// 自定义文章类型函数
function create_posttype_06() {
    // 支持的功能项
    $supports = array(
        'title',        // 文章标题
        'editor',       // 内容编辑器
        'author',       // 文章作者
        'thumbnail',    // 特色图片
        'excerpt',      // 文章摘要
        'custom-fields',// 自定义字段
        'comments',     // 评论功能
        'revisions',    // 版本修订
        'post-formats', // 文章格式
        'categories',   // 分类
        'tags'          // 标签
    );
    // 后台显示的标签文本
    $labels = array(
        'name' => _x('Modality Post', 'plural'),
        'singular_name' => _x('Modality Post', 'singular'),
        'menu_name' => _x('Modality Post', 'admin menu'),
        'name_admin_bar' => _x('Modality Post', 'admin bar'),
        'add_new' => _x('Add New', 'add new'),
        'add_new_item' => __('Add New Modality Post'),
        'new_item' => __('New Modality Post'),
        'edit_item' => __('Edit Modality Post'),
        'view_item' => __('View Modality Post'),
        'all_items' => __('All Modality Posts'),
        'search_items' => __('Search Modality Posts'),
        'not_found' => __('No Modality Posts found.'),
    );
    // 注册参数配置
    $args = array(
        'supports' => $supports,
        'labels' => $labels,
        'public' => true,
        'query_var' => true,
        'rewrite' => array('slug' => 'modality-post'), // 去掉空格,用连字符更符合URL规范
        'has_archive' => true,
        'hierarchical' => false,
        'show_in_rest' => true,
        'taxonomies'  => array('category', 'post_tag'),
    );

    // 注册自定义文章类型
    register_post_type('modality_post', $args);
}
// 挂载到WordPress初始化钩子
add_action( 'init', 'create_posttype_06' );

后续排查步骤

  1. 替换代码后,进入WordPress后台→设置→固定链接,直接点击「保存更改」,刷新URL规则
  2. 检查所有WP Code Snippets中的自定义代码,确保没有提前输出内容(比如echo、var_dump,或者代码开头/结尾的多余空格、换行)
  3. 如果报错仍存在,暂时禁用其他插件,排查是否有其他插件提前输出内容导致冲突

内容的提问来源于stack exchange,提问作者Andrew Burdette

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 02:41:00