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

WordPress站点无法访问后台,出现Array to string conversion等报错求助

解决WordPress站点及后台的Array转字符串与Header报错问题

核心问题分析

报错根源是/htdocs/wp-includes/class-wp-widget.php第734行存在数组转字符串的强制转换操作,触发PHP警告。后台登录时的Cannot modify header information报错是连锁反应:警告信息先输出到页面,导致WordPress无法后续发送HTTP头(登录跳转依赖HTTP头)。

分步解决方案

1. 快速恢复后台访问

通过FTP或主机文件管理器操作:

  • 方案A:禁用所有插件:将wp-content/plugins目录重命名为wp-content/plugins_old,刷新后台页面。若恢复正常,说明是插件自带的小工具导致问题。
  • 方案B:临时禁用所有小工具:编辑当前主题的wp-content/themes/[你的主题名]/functions.php,在文件开头添加以下代码:
    add_action('widgets_init', function() {
        global $wp_widget_factory;
        $wp_widget_factory->widgets = array();
    }, 100);
    
    保存后刷新后台,即可临时禁用所有小工具,进入后台。

2. 定位具体出错的小工具

恢复后台后,逐步排查:

  • 若用了方案A:把plugins_old改回plugins,逐个启用插件,每启用一个刷新页面,直到报错重现,锁定对应的插件。
  • 若用了方案B:删除添加的代码,进入外观→小工具,逐个添加小工具到侧边栏,刷新页面定位出错的小工具。

3. 修复小工具问题

找到问题小工具后:

  • 检查小工具的设置项:是否有输入框被误填为数组格式(比如复制了带[]或{}的内容),清空或修正为正常字符串。
  • 若是插件/主题自带的小工具代码问题:
    • 更新对应插件/主题到最新版本,看是否修复了该bug。
    • 若无法更新,修改小工具的代码:找到小工具的PHP文件,在输出数据前添加数组判断,比如将echo $value;改为:
      echo is_array($value) ? esc_html(wp_json_encode($value)) : esc_html($value);
      

4. 应急修复报错行(临时方案)

若暂时无法定位问题小工具,可先修改报错的class-wp-widget.php第734行,避免警告输出:

  • 打开/htdocs/wp-includes/class-wp-widget.php,找到第734行的代码(通常是输出小工具实例数据的语句)。
  • 将原输出语句改为带数组判断的安全输出,例如:
    // 假设原代码是 echo $instance['title'];
    echo is_array($instance['title']) ? esc_html(wp_json_encode($instance['title'])) : esc_html($instance['title']);
    
    保存后,警告会消失,header报错也会自动解决。

5. 验证修复效果

完成修复后,刷新前台和后台页面,确认所有报错消失,功能正常。


内容的提问来源于stack exchange,提问作者Geek Digitale

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 10:02:11