0

我正在开发一个多语言网站。我们正在使用 Polylang 和 ACF 自定义字段插件。

通常工作正常,问题出在 ACF 选项页面上。选项页面也被翻译成不同的语言。

我们从那里获取的内容是根据翻译显示的 - 在英文版页面上显示英文,在法文上显示法文等。

问题:我们有一个联系我们表格,我们从 ACF 选项页面获取收件人电子邮件地址。(当它使用不同的语言时,我们希望将其发送给不同的接收者。)

在这里,它总是从默认语言选项页面获取电子邮件地址,我不明白为什么。

我们使用 get field 命令获取 ajax 调用的电子邮件收件人,例如在显示内容的页面上:

 get_field('service_email', 'option' );

任何人都知道可能导致这种情况的原因是什么?或者去哪里看?

4

1 回答 1

1

最后我们找到了解决方案。这需要一些挖掘,但如果有人遇到同样的问题,我希望这会有所帮助。

我们需要在主题的 functions.php 中添加以下设置,以使 ACF 选项页面也为每种语言翻译:

// Translating Options Page Compatibility
// add filter with the path to your acf installation
add_filter('acf/settings/default_language', 'my_settings_default_language');
add_filter('acf/settings/current_language', 'my_settings_current_language');

function my_settings_default_language( $lang ) {
if($lang == "") {
    $lang = pll_default_language(); // pll_ is a polylang function
  }
  return $lang;
}

function jfrog_settings_current_language( $lang ) {
   $lang = pll_current_language();
   return $lang;
}

旁注:我们使用的是 ACF 的主题安装版本。

希望这会有所帮助,干杯

于 2019-04-01T09:48:43.907 回答