qq_48146660 2021-01-08 18:33 采纳率: 0%
浏览 1031

配置WordPress主题时遇到的两个关于RESTAPI的问题

问题1:

session_start()函数调用生成了一个会话.该会话干扰了RESTAPI及环回请求。在做出任何HTTP请求前,该会话必须由session_write_close()函数关闭.

 

问题2:

RESTAPI是WordPress及其他应用与服务器通信的一种途径。例如区块编辑器页面,它依赖REST来显示及保存您的页面和文章.

RESTAPI调用返回了预料之外的结果:(404)<html><head><title>404未找到</title></head><body><h1><h1>404未找到</h1><h1><hr><调用返回了预料之外的结果>nginx</Center></body></html>。

 

我觉得是BuddyPress这个插件产生的问题,因为安上它以后除了主页外的所有页面都404,检查以后把固定链接格式改到默认,第二个导致404的推荐改进的问题解决了,但buddypress插件提示需要更新固定链接格式才能正式启用;也就是说,要么buddypress不能用,要么所有页面404。

第一个关键问题还没有头绪。

我是一个程序小白,刚开始自学编程,希望能够通过wp后台简单的配置解决这个问题

  • 写回答

1条回答 默认 最新

  • SmallFatMan 2023-06-02 10:14
    关注

    建议先排查下下面几个:

    • REST API 未启用:请确保已经启用了 WordPress 的 REST API。可以通过前往“设置”>“写文章”并确保“启用WordPress的REST API”选项已勾选来启用它。
    • 主题不支持 REST API:如果您正在使用的主题不支持 WordPress 的 REST API,则会出现 404 错误。请查看主题文档或联系主题作者以了解其是否支持 REST API。
    • 主题中的自定义代码导致:如果主题中包含自定义代码,则可能存在与 REST API 相关的代码导致。请尝试禁用自定义代码并检查是否可以正常工作。
    • 插件导致:如果你安装了其他插件,也可能会导致与 API 。尝试禁用所有插件,并慢慢地逐一启用它们,找到导致问题的插件。
      第一个问题可能是因为在WordPress的REST API请求或执行环回请求之前,有一个被开启但未关闭的会话。这可能会干扰REST API和环回请求导致出现问题。

    要解决这个问题,可以尝试添加下面代码到您的主题的 functions.php 文件中,在创建会话后立即关闭它:

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

    添加完将在WordPress的初始化期间自动运行。通过检查当前是否存在会话来关闭会话,并在完成相关任务后尽快关闭,以确保没有Open session会干扰REST API 和环回请求。

    评论 编辑记录

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码