如何获取所有语言的 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&amp;lang=fr 和页面蛞蝓 /wp-json/wp/v2/pages/?page-slug=second+post&amp;lang=fr

但是,如果您希望 ACF 字段存在(或使用插件),则需要修改 API 响应。

另外请注意,翻译之间的帖子 ID 是不同的。确保在 WP_REST_Controller 的修改中包含 lang 作为参数。 https://developer.wordpress.org/reference/classes/wp_rest_controller/get_collection_params/

如果有帮助,请告诉我。

【讨论】:

以上是关于如何获取所有语言的 post slug?的主要内容,如果未能解决你的问题,请参考以下文章

如何获取具有多个表关系的帖子?

获取WP页Slug

Wordpress获取页面slug

获取post slug

从父级获取过滤的子级

WordPress获取父slug