WPML

コードでの使用例を含む、ACF Multilingual (ACFML) の定数とフックの完全なリストを紹介します。

ACF Multilingual (ACFML) のフック

acfml_should_translate_acf_entity

このフックを使用すると、ACFフィールドまたはフィールドグループを翻訳するかどうかを決定できます。このフィルターを使用することで、カスタムロジックに基づいて特定のフィールドやグループの翻訳をスキップできます。

タイプ: フィルター

利用可能: ACFML 2.1.4

パラメーター:

$shouldTranslate
(bool) (必須) フィールドまたはフィールドグループを翻訳するかどうか。デフォルトはtrueです。

$entity
(array) (必須) 翻訳されるエンティティ。フィールド配列またはグループ配列のいずれかです。

$entityType
(string) (オプション) 翻訳されるエンティティのタイプ。「field」または「group」のいずれかになります。

フックの使用例:

add_filter( 'acfml_should_translate_acf_entity', function( $shouldTranslate, $entity, $entityType ) {
	if ( 'field' === $entityType ) {
		return false;
	}

	return $shouldTranslate;
} );

acfml_field_group_mode_field_translation_preference

このフィルターを使用すると、フィールドグループが同じフィールドまたは異なるフィールドモードを使用している場合に、ACFフィールドのデフォルトの翻訳設定を上書きできます。

注意: このフィルターはデフォルトの翻訳設定のみを変更し、個々のフィールドの保存された設定は変更しません。デフォルトを変更した場合、新しいデフォルトを適用するには、影響を受けるフィールドグループを再保存する必要があります。

タイプ: フィルター

利用可能: ACFML 2.0.0

パラメーター:

$fieldTranslationPreference (int) (必須) フィールドのデフォルトの翻訳設定。可能な値は以下の通りです。

  • 0翻訳しない。WPMLはフィールドを完全に無視します。
  • 1コピー。フィールド値はすべての言語にコピーされ、同期が維持されます。
  • 2翻訳。フィールド値が翻訳可能になります。
  • 3一度だけコピー。フィールド値は一度だけすべての言語にコピーされ、その後は各言語で個別に編集できます。

$groupMode (string) (必須) フィールドグループの翻訳モード。可能な値: translation、localization。
$field (array) (必須) ACFフィールド配列。

フックの使用例:

add_filter( 'acfml_field_group_mode_field_translation_preference', function( $fieldTranslationPreference, $groupMode, $field ) {
    $fieldType = $field['type'] ?? null;

    if ( 'link' === $fieldType ) {
        return 2; // WPML_TRANSLATE_CUSTOM_FIELD
    }

    return $fieldTranslationPreference;
}, 10, 3 );

この例では、linkフィールドタイプを強制的に翻訳可能にし、デフォルトのcopyまたはcopy_onceの設定を上書きします。

ACF Multilingual (ACFML) の定数

ACFML_EXCLUDE_FIELD_GROUP_STRINGS_IN_POST_JOBS

ACFML 2.1.5以降では、この定数を使用してフィールドグループの文字列を投稿の翻訳ジョブに含めることができます。

これを有効にするには、wp-config.phpファイルに以下の行を追加します。

define( 'ACFML_EXCLUDE_FIELD_GROUP_STRINGS_IN_POST_JOBS', false );

注意:

  • このコードをwp-config.phpファイルに追加する前に翻訳ジョブを作成していた場合は、それをキャンセルして新しく作成してください。
  • 必要に応じて、翻訳ダッシュボードからフィールドのラベルや選択肢を翻訳に送信できます。

ACFML_HIDE_FIELD_ANNOTATIONS

翻訳された各フィールドに対して、ACF Multilingualは元の言語の値に関する情報を追加します。

翻訳されたフィールドからこの情報を削除するには、サイトのwp-config.phpファイルに以下の行を追加します。

define( 'ACFML_HIDE_FIELD_ANNOTATIONS', true );

ACFML_REPEATER_SYNC_DEFAULT

この定数を使用して、Repeaterフィールドの同期機能のデフォルト値を設定できます。デフォルトではtrueに設定されています。これは、Repeaterフィールドが翻訳間で自動的に同期されることを意味します。この定数をfalseに設定すると、Repeaterフィールドの同期が無効になります。

テーマのfunctions.phpファイルでACFML_REPEATER_SYNC_DEFAULTのデフォルト値を上書きできます。

define('ACFML_REPEATER_SYNC_DEFAULT', false);

ACFML_SCAN_LOCAL_FIELDS

この定数をfalseに設定すると、ローカルフィールドのJSONファイルのスキャンが無効になります。

これは、ローカルフィールドで翻訳設定を変更しても、データベースに同期されないことを意味します。フィールドの翻訳設定を手動で設定する必要があります。

詳細については、ローカルJSONの使用に関するACFの公式ドキュメントを確認してください。

執筆者:Amir · 最終更新日:2026年6月30日