此错误是由于 session_start() 函数创建了 PHP 会话,干扰了 WordPress 中的 REST API 和 loopback 请求。要解决此问题:

  1. 定位 session_start() 代码
    在主题或激活的插件中查找 session_start() 函数。它可能在主题的 functions.php 文件或自定义插件中。
  2. session_start() 后添加 session_write_close()
    确保在每次调用 session_start() 后、执行任何 HTTP 请求之前调用 session_write_close()。这将关闭会话,从而允许 REST API 正常工作。例如:

    session_start();
    // 在此处编写您的代码
    session_write_close();
  3. 在 WordPress 中使用 init 钩子
    如果 session_start() 需要放在 functions.php 中,确保将其包装在 init 钩子中,并使用 session_write_close(),如下所示:

    add_action('init', function() {
    if (!session_id()) {
    session_start();
    session_write_close();
    }
    });