You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress-Polylang:获取翻译页面的默认语言原页面ID

用Polylang获取默认语言(法语)原页面ID的可行方案

嘿,这个问题我刚好处理过,Polylang其实藏着实用的内置函数能解决这个需求,可能你看文档的时候没留意到~

核心就是用pll_get_post()函数,它专门用来获取指定语言对应的文章/页面ID,完全符合你的场景。下面给你具体的用法:

基础用法(循环内)

如果是在文章/页面循环里(比如single.php、page.php模板中),可以这么写:

// 获取当前访问页面的ID
$current_post_id = get_the_ID();

// 传入当前ID和法语的语言slug(通常是'fr',要和你Polylang设置里的一致)
$french_original_id = pll_get_post($current_post_id, 'fr');

// 可选:判断是否存在对应的法语页面
if ($french_original_id) {
    // 这里可以使用获取到的法语原页面ID,比如跳转到原页面或者调用内容
    echo "对应的法语原页面ID是:{$french_original_id}";
} else {
    echo "当前页面没有对应的法语版本";
}

循环外的用法

如果是在循环外(比如header.php、自定义模板的顶部),get_the_ID()可能取不到值,这时候用get_queried_object_id()来获取当前页面ID:

// 循环外获取当前页面的ID
$current_post_id = get_queried_object_id();
$french_original_id = pll_get_post($current_post_id, 'fr');

额外提示

  • 确认法语的语言slug:你可以在Polylang的后台设置(Languages -> Languages)里查看,每个语言的slug会显示在列表中,确保传入的slug和设置一致。
  • 自定义文章类型适配:只要你在Polylang设置里开启了自定义文章类型的多语言支持,这个函数同样适用。
  • 若当前页面已是法语页面:pll_get_post()会直接返回当前页面的ID,无需额外处理。

内容的提问来源于stack exchange,提问作者Laurent

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:24:10