首页 > 解决方案 > 如何获取所有语言的 post slug?

问题描述

我有一个 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帖子添加自定义字段。

标签: wordpressrestcustom-post-typeslugwpml

解决方案


嘿,我有相同的设置,但 React 没有。

如果您使用的 API 没有在类中进行任何修改,并且鉴于语言之间的标题相同,请尝试以下操作: /wp-json/wp/v2/posts/?post-slug=second+post&lang=fr 和 page slug /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/

让我知道这是否有帮助。


推荐阅读