跳到内容 跳到侧边栏
已更新
2026 年 3 月 3 日

了解如何为在 PHP 中注册的 ACF 字段设置翻译首选项,并自动将其包含在由 ACF 生成的 JSON 文件中。

为通过 PHP 注册的 ACF 字段设置翻译首选项

要为通过 PHP 注册的 ACF 字段设置翻译首选项,您需要使用 acf_add_local_field_group 函数,并在每个字段的定义中添加 wpml_cf_preferences

您可以为 wpml_cf_preferences 使用四个数值:

  • 0不翻译。WPML 将完全忽略该字段。
  • 1复制。字段值将复制到所有语言并保持同步。
  • 2翻译。字段值将可用于翻译。
  • 3仅复制一次。字段值将一次性复制到所有语言,之后可以在每种语言中独立编辑。

不确定该使用哪种翻译选项?请参阅每个 ACF 字段的推荐选项

您可以在下方看到一个将 wpml_cf_preferences 键添加到以编程方式注册的字段组的示例。

acf_add_local_field_group( [
  'key' => 'group_1',
  'title' => '我的组',
  'fields' => [
  [
  'key' => 'field_1',
  'label' => '副标题',
  'name' => 'sub_title',
  'type' => 'text',
  'prefix' => '',
  'instructions' => '',
  'required' => 0,
  'conditional_logic' => 0,
  'wrapper' => [
  'width' => '',
  'class' => '',
  'id' => '',
  ],
  'default_value' => '',
  'placeholder' => '',
  'prepend' => '',
  'append' => '',
  'maxlength' => '',
  'readonly' => 0,
  'disabled' => 0,
  'wpml_cf_preferences' => 2, // 此字段(“副标题”)将被翻译。
  ],
  ],
  'location' => [
  [
  [
  'param' => 'post_type',
  'operator' => '==',
  'value' => 'post',
  ],
  ],
  ],
  'menu_order' => 0,
  'position' => 'normal',
  'style' => 'default',
  'label_placement' => 'top',
  'instruction_placement' => 'label',
  'hide_on_screen' => '',
] );

将您的字段与 WPML 同步

在使用 PHP 定义字段后,您需要将它们告知 WPML。

  1. 前往 ACF工具 页面。
  2. 向下滚动至 翻译 ACF 本地 JSON 和 PHP 注册字段
将本地 ACF 字段与 WPML 同步
  1. 同步本地字段的翻译偏好 部分,选择应何时进行同步。 在大多数情况下,您会希望使用 立即同步一次 选项,然后单击 应用 按钮。

WPML 将同步字段,然后重置为不同步选项。这样,同步仅在您选择的时间访问一次数据库。

在 JSON 文件中设置 ACF 字段的翻译首选项

如果您正在使用 ACF 的 Local JSON 功能,ACF Multilingual (ACFML) 会自动为 JSON 文件中的每个字段添加翻译首选项。这意味着当您在站点之间导出和导入 JSON 文件时,翻译首选项将自动应用于目标站点。

您只需在源站点 目标站点上同时激活 ACFML 即可。完成后,每当 ACF 生成 JSON 文件时,它都会包含您的翻译首选项。

如果您的 JSON 文件最初是在未激活 ACFML 的情况下生成的,请激活 ACFML,将 JSON 文件导入 ACF 用户界面,设置翻译首选项,然后重新保存字段组。这将重新生成包含首选项的 JSON 文件。