Wordpress JSON API 以 html 格式返回正常的站点页面。我如何让它像应该的那样给我 JSON

n8b*_*bar 6 wordpress json

比如进入http://mywordpresswebsite.example.com/?json=1浏览器加载主站html,与省略json查询字符串变量相同:http://mywordpresswebsite.example.com/

JSON API 已激活。我尝试重新激活和停用、检查 .htaccess 文件设置以及停用所有其他插件。到目前为止,这些都没有产生太大的影响。

TIA

Ren*_*ene 8

我的本地主机测试页面也遇到了同样的问题,我想知道为什么我的路线上周有效,而本周无法访问。

\n\n

简短说明

\n\n

经过一些测试和很多挫折后,我能够通过遵循有关路由与端点的 WordPress 文档,使用\ xe2 \x80\x9cPretty Permalinks\xe2\x80\x9d\xe2\x80\再次使用 REST API 路由x9cUgly\xe2\x80\x9d 永久链接

\n\n

更长的解释

\n\n

我想就我而言,这是基于我的 MySQL 数据库的重新安装。通过安装新数据库,我之前的设置已重置为 WordPress 标准安装,永久链接为“普通”,这是一个“丑陋”的永久链接。这就是为什么在重新安装数据库后,Mattygabe 的答案对我有用的原因。

\n\n

但使用这个解决方案时,我的过滤器值出现了问题,因此我找到了带有“漂亮的预链接”的解决方案,并将我的永久链接更改为“月份和名称”,如图所示。进行此更改后,我可以通过所需的路线访问我的 REST API。

\n\n

在此输入图像描述

\n\n

与以下示例相关的 REST API 也可能存在一些困难:

\n\n
    \n
  • 使用“wp”在 REST 路由中
  • \n
  • 如果您使用应该共享的插件,请记住某些插件可能会限制 REST 访问,例如iThemes Security
  • \n
\n


Mat*_*abe 5

我可能做错了,但是当我http://www.example.com/像这样提出 WordPress 安装请求时:

http://www.example.com/index.php?rest_route=/my/rest/route/here

我最终得到了正确的回应。

我花了很长时间才弄清楚这一点,最终得到了一个像 HTML 返回给我的格式的 URL。我原本希望以 的形式发出请求http://www.example.com/wp_json/wp/v2/my/rest/route/here,但我只收到 HTML 响应。

(FWIW,我在 StackExchange 网络上的所有类似问题上重新发布了此内容。管理员/mods - 如果这违反规则或被视为代表垃圾邮件,请随时将其删除。希望能帮助其他遇到相同问题的人是,并了解我做错了什么以及为什么。)


小智 5

我更改了永久链接(设置 => 永久链接) 在此输入图像描述


n8b*_*bar 3

好的,Wordpress 4.7 的新端点是 mywordpresswebsite.example.com/index.php/wp-json。从 4.7 开始,它是 WordPress Core 的一部分,不再是插件,无需激活任何内容。谢谢你,马克·卡普伦。