我的理解是:
不再需要Wordpress REST API插件,因为大概它已经与Wordpress 4.7中的核心合并。
默认情况下启用了Wordpress REST API
但是,我注意到在普通的Wordpress 4.7安装中,似乎没有端点工作(例如
http://examples.com/wp-json/wp/v2/posts
)。如何确定新的REST API是否真的被激活?可以使用普通的Wordpress UI启用或禁用REST API,还是应该安装第三方插件来实现?
#1 楼
4.7默认情况下启用它。检查它是否正常的简单方法是访问example.com/wp-json url,您应该在那里找到注册端点的列表。没有官方选项可以禁用它如(至少有讨论不确定它是否发布),一些核心功能取决于它。
检查它是否不起作用的最明显的事情是您的htaccess规则,您是否有wp-json目录
评论
我在/ var / www / html或其子目录下没有wp-json目录。我似乎没有.htaccess文件(/var/www/html/wp-content/plugins/akismet/.htaccess除外,我应该有一个吗?
–Pep
16 Dec 10'在17:54
@Pep,您使用什么网络服务器?你有固定的链接吗?
–马克·卡普伦
16 Dec 10'在17:58
阿帕奇我完全按照这些教程中的步骤在AWS上安装Wordpress 4.7:docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-LAMP.html和docs.aws.amazon.com/AWSEC2/latest/UserGuide/…
–Pep
16 Dec 10'在18:04
并不熟悉AWS,但是如果您安装了香草wordpress,则应该在安装根目录下具有.htaccess。如果不尝试转到设置>永久链接,请确保您不在普通设置上,保存,然后检查是否生成了htaccess。
–马克·卡普伦
16 Dec 10'在18:12
我终于找到了问题。因为我不知道要使用REST API才能使用Permalink,所以我在初始设置过程中跳过了在/ etc / httpd / conf /的
–Pep
16 Dec 10'在19:53
#2 楼
我有4.7版本还以为REST API被禁用,但是URL欺骗了我。要查看正确的URL,请查找类似于以下内容的行:link rel ='
https://api.w.org/
'href ='http://mysite?rest_route=/
'/>。 因此,使用http:// mysite?rest_route = /作为前缀解决了我的问题。例如,要恢复帖子就足以键入:http:// mysite?rest_route = / wp / json
我在文档中找不到需要查询参数的信息。我是唯一的一个吗?
评论
使用wordpress 4.8.x为我工作。不知道为什么未在任何地方进行记录。
–阿尼鲁达(Anirudha)
17年8月31日在11:35
不是唯一的一个。搜索10分钟后,才在您的评论中找到该答案。需要做的:www.example.com?rest_route = / wp / v2 / posts
– Eugene K
18-2-7在3:50
我认为,如果没有启用漂亮的永久链接,就会发生这种情况。从文档中...“在没有固定链接的站点上,将路由作为rest_route参数添加到URL。对于上面的示例,完整的URL将为example.com/?rest_route=/wp/v2/posts / 123“
–吉尔斯·巴特勒
18年7月19日在21:36
这是-> developer.wordpress.org/rest-api/#routes-endpoints
– Deepcell
19年1月3日在16:48
如果要使用PHP内置服务器php -S localhost:1234进行测试,则非常有用。
– Juan Javier Triff Cabanas
20年9月2日,下午2:22
#3 楼
如果REST API无法立即使用,或者在全新安装后并输入mydomain/wp-json/wp/v2/posts
,那么您只需激活“永久链接”即可post_name位于:
WP仪表板->设置->永久链接
或者如果您不希望激活永久链接,则只需键入:
mydomain?rest_route=/wp/v2/posts
老兄,我希望WordPress将他们的Rest手册更新为更加用户友好。我喜欢旧版本的docs :)
#4 楼
我看到您已经解决了该问题,但由于它对我也有用,因此保留了我的解决方案。从wp 4.7中的beta15更新到核心api时,我遇到了同样的问题。结果是,我有一些插件使用了不赞成使用的函数register_api_field,根据更改日志中的此注释,我将其更改为register_rest_field:突破性变化:将register_api_field()重命名为register_rest_field()。
引入了朝后兼容的register_api_field()函数,该函数
调用_doing_it_wrong()。但是,register_api_field()永远不会提交给WordPress核心,因此您应该更新函数调用。
评论
页面源代码中是否有发现标签? 似乎只能在我的网站上使用。@Rarst,如果我grep -r“ \ n”;
不在您的源代码中,而是在您的浏览器中站点的页面的HTML源代码中。
@Rarst,是的,我看到了
在浏览器中打开链接能为您带来什么?启用WP_DEBUG了吗?