搜索全站
multilingual 3 分钟阅读

多语言 WordPress 站内通知与公告:全语言公告如何同步发布

多语言 WordPress 站点如何给不同语言用户推送同一则公告?本文讲解用 WPML/Polylang 实现公告按语言展示,以及公告本身的多语言翻译方法。

U
UFO_PF 2024-05-24 · 阅读 3 分钟
多语 MULTILINGUAL
阅读提示
本文约 877 字,预计阅读 3 分钟。文中命令与配置均经过实测,可直接参考执行。

引言:一条维护公告要翻译成八种语言吗

站点维护、促销、合规变更这类公告,往往需要在所有语言版本同时出现。如果只写在英文页,其他语言用户看不到;如果每页手动加,既慢又容易漏。正确思路是”一份内容、按语言渲染”。

原理分析:公告的两种实现路径

一是用区块/小工具(如”通知栏”类插件)配合多语言插件,让同一条公告的不同语言翻译各就各位。WPML 会将小工具、菜单、字符串都纳入翻译体系;Polylang 需手动为每种语言建一份。二是用自定义数据库表 + 根据 ICL_LANGUAGE_CODE(WPML)或 pll_current_language()(Polylang)在模板里切换输出。

保姆级实操

  1. WPML 字符串翻译:在”WPML→字符串翻译”中登记公告文本,提供各语言译文,前台按当前语言自动调用。
  2. 小工具方案:装 Notification Bar 类插件,在 WPML 中将该小工具设为”可翻译”,分别填各语言文案。
  3. 代码输出:在 header.php 中写 <?php if(ICL_LANGUAGE_CODE==='fr') echo '维护通知法语版'; ?> 做硬编码分支(仅适合极少量语言)。
  4. Polylang:为每种语言建独立”公告”页面或用 pll_get_post() 取对应译文 ID 输出。
  5. 紧急下线:公告存为自定义字段,置空即全站消失,避免逐页删。

常见踩坑

  • 案例:某站用硬编码 if(lang==='de') 写了 12 种分支,新增西班牙语时忘了加,西语用户看不到停服公告,投诉激增。
  • WPML 字符串未登记就直接 echo 原文,翻译界面搜不到该字符串。
  • 公告含日期未做 多语言站点日期数字单位格式 本地化,欧美用户看反了月日。
  • 弹窗公告未做移动端适配,小屏遮挡内容且无法关闭。

总结

公告同步的关键是”内容 multilingual-ready”:能用字符串翻译就用字符串翻译,避免硬编码分支。紧急公告建议走自定义字段一键开关。配合 多语言站点OG分享卡片 时,公告页的社交卡片也要分语言输出。

U
UFO_PF作者

专注 WordPress 生态的实战作者,内容以「可复制、可验证」为第一原则。

留下你的想法

邮箱地址不会被公开。带 * 的为必填项。