如何获取所有语言的 post slug?
Posted
技术标签:
【中文标题】如何获取所有语言的 post slug?【英文标题】:How can I fetch the post slugs of all languages? 【发布时间】:2021-01-01 06:25:30 【问题描述】:我有一个 react 项目,它通过 api 调用获取 wordpress 上的数据(安装的插件:ACF 和 WPML)。 我有 Event CPT 并查看页面 localhost:3000 / events / first-event,我通过 slug 检索信息。 如果在此页面上我想用另一种语言检索相同的事件,我可以在 url 中添加国家代码并进行重定向。 根据语言,同一事件可能具有不同的 slug,并且该功能不起作用。 您对如何制作此功能有任何想法吗?
谢谢你们!
我暂时修改了路径名。
<a href=window.location.pathname.replace('/','/en/')>EN</a>
我找到了解决方案。
我使用icl_get_languages()
函数获取语言,icl_object_id()
检索语言的帖子 ID,get_post
检索所有字段,update_post_meta
向帖子添加自定义字段。
【问题讨论】:
【参考方案1】:嘿,我有相同的设置,但 React 没有。
如果您使用的 API 没有在类中进行任何修改,并且语言之间的标题相同,请尝试以下操作:
/wp-json/wp/v2/posts/?post-slug=second+post&lang=fr
和页面蛞蝓
/wp-json/wp/v2/pages/?page-slug=second+post&lang=fr
但是,如果您希望 ACF 字段存在(或使用插件),则需要修改 API 响应。
另外请注意,翻译之间的帖子 ID 是不同的。确保在 WP_REST_Controller 的修改中包含 lang 作为参数。 https://developer.wordpress.org/reference/classes/wp_rest_controller/get_collection_params/
如果有帮助,请告诉我。
【讨论】:
以上是关于如何获取所有语言的 post slug?的主要内容,如果未能解决你的问题,请参考以下文章