我正在将我现有的WordPress站点转换为在前端使用Preact/Redux,并使用WP REST API从管理员处获取post数据。
我将在中使用React路由器和重写。htaccess将URL重写为索引。html文件,React路由器应处理请求。
给定的现有URLhttps://peteschuster.com/2017/10/high-praise-react-react-ecosystem/
我想我会把路线设置为/:year/:month/:slug
我的问题是,如何使用这些参数来获取帖子ID,以便调用REST端点:GET /wp/v2/posts/<id>
?
也许还有其他方法可以做到这一点?我尝试了以下几种组合:https://peteschuster.com/wp/v2/posts/2017/10/high-praise-react-react-ecosystem/
无济于事。我在想可能类似于/feed
处理方式如下:https://peteschuster.com/2017/10/high-praise-react-react-ecosystem/json
任何指导都将不胜感激。谢谢
最合适的回答,由SO网友:ssnepenthe 整理而成
core rewrite API确实提供了以下功能url_to_postid()
(正如@StephenSabatini所提到的)可以从URL中找到帖子ID。然而,仅仅为了确定职位ID而提前提出请求似乎不太理想。。。
REST API本机不提供按设置之外的日期进行查询的功能before
和after
这样对你没什么帮助。
您可能会忽略日期参数并按slug进行查询。例如:
https://peteschuster.com/wp-json/wp/v2/posts?slug=high-praise-react-react-ecosystem
或者,您可以创建自定义端点并执行任何类型的查询。检查
REST API handbook 了解更多信息。
关于/json
端点:这不是本机存在的东西,但肯定是可行的。
要实现它,请查看重写端点:
SO网友:Thomas Karlsson
我想我会在这上面加上我的两分钱。
使用wp-json/wp/v2/posts?slug=
在开始使用之前,效果非常好parent & child 第页。
除非其中一页是另一页的子页,否则任何两页都不能有相同的slug。这里有一个简单的例子,我有一个名为lorem-2的页面(由于我已经有一个名为lorem的页面,所以自动添加了-2)。
然后,我在lorem中添加了一个名为lorem-2的子页面,当我查询lorem-2时,我得到了两个页面。
更安全的路由是创建一个自定义的REST路由,让您可以查询whole URL,它将为您提供准确的帖子/页面