コンテンツへスキップ サイドバーへスキップ
更新済み
2026年3月3日

PHPで登録されたACFフィールドの翻訳設定を行い、ACFが生成するJSONファイルに自動的に含める方法を学びます。

PHPで登録されたACFフィールドの翻訳設定

PHPで登録されたACFフィールドの翻訳設定を行うには、acf_add_local_field_group関数を使用し、各フィールドの定義にwpml_cf_preferencesを追加する必要があります。

wpml_cf_preferencesに使用できる4つの数値があります。

  • 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. Translate ACF Local JSON and PHP-Registered Fieldsまでスクロールダウンしてください。
ローカルACFフィールドとWPMLの同期
  1. ローカルフィールドの翻訳設定を同期 セクションで、同期を実行するタイミングを選択します。 ほとんどの場合、今すぐ一度同期オプションを使用し、適用ボタンをクリックします。

WPMLはフィールドを同期し、その後、非同期オプションにリセットされます。これにより、同期がデータベースにアクセスするのは、選択したタイミングでの一度だけになります。

JSONファイルでのACFフィールドの翻訳設定

ACFのローカルJSON機能を使用している場合、ACF Multilingual (ACFML) はJSONファイル内のすべてのフィールドに対して翻訳設定を自動的に追加します。これにより、サイト間でJSONファイルをエクスポートおよびインポートする際、移行先のサイトでも翻訳設定が自動的に適用されます。

必要なのは、移行元移行先の両方のサイトでACFMLを有効化することだけです。完了すると、ACFがJSONファイルを生成するたびに、翻訳設定も含まれるようになります。

JSONファイルがACFMLを有効化せずに生成された場合は、ACFMLを有効化し、JSONファイルをACFユーザーインターフェースにインポートし、翻訳設定を行い、フィールドグループを再保存してください。これにより、設定を含むJSONファイルが再生成されます。