WPML

Descubra la lista completa de constantes y hooks de ACF Multilingual (ACFML), con ejemplos para usarlos en su código.

Hooks de ACF Multilingual (ACFML)

acfml_should_translate_acf_entity

Este filtro decide si ACFML muestra las etiquetas traducidas de un campo o grupo de campos de ACF. Devuelva false para mostrar las etiquetas originales en todos los idiomas. Los valores de los campos no cambian.

Tipo: Filtro

Disponibilidad: ACFML 2.1.4

Parámetros:

$shouldTranslate
(bool) (Obligatorio) Si el campo o grupo de campos debe traducirse. Su valor predeterminado es true.

$entity
(array) (Obligatorio) La entidad que se está traduciendo, que es un array de campo o un array de grupo.

$entityType
(string) (Opcional) El tipo de entidad que se está traduciendo. Puede ser «field» o «group».

Ejemplo de uso del hook:

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

	return $shouldTranslate;
}, 10, 3 );

acfml_field_group_mode_field_translation_preference

Este filtro le permite anular la preferencia de traducción predeterminada para los campos de ACF cuando un grupo de campos usa Mismo contenido en todos los idiomas, traducido o Cada idioma tiene su propio contenido.

Nota: Este filtro cambia solo la preferencia de traducción predeterminada, no la preferencia guardada de los campos individuales. Si modifica el valor predeterminado, debe volver a guardar los grupos de campos afectados para que se aplique el nuevo valor predeterminado.

Tipo: Filtro

Disponibilidad: ACFML 2.0.0

Parámetros:

$fieldTranslationPreference (int) (Obligatorio) La preferencia de traducción predeterminada para el campo. Valores posibles:

  • 0 — No traducir. WPML ignora el campo por completo.
  • 1 — Copiar. El valor del campo se copia a todos los idiomas y se mantiene sincronizado.
  • 2 — Traducir. El valor del campo está disponible para su traducción.
  • 3 — Copiar una vez. El valor del campo se copia a todos los idiomas una vez, después de lo cual se puede editar en cada idioma de forma independiente.

$groupMode (string) (Obligatorio) El modo de traducción del grupo de campos. Valores posibles: translation o localization.
$field (array) (Obligatorio) El array del campo de ACF.

Ejemplo de uso del hook:

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

    if ( 'url' === $fieldType ) {
        return 1; // WPML_COPY_CUSTOM_FIELD
    }

    return $fieldTranslationPreference;
}, 10, 3 );

Este ejemplo le da al tipo de campo url la preferencia Copiar en lugar de su preferencia recomendada Traducir.

Constantes de ACF Multilingual (ACFML)

ACFML_EXCLUDE_FIELD_GROUP_STRINGS_IN_POST_JOBS

A partir de ACFML 2.1.5, puede usar esta constante para incluir las cadenas del grupo de campos en el trabajo de traducción de la entrada.

Para activar esto, añada la siguiente línea a su archivo wp-config.php:

define( 'ACFML_EXCLUDE_FIELD_GROUP_STRINGS_IN_POST_JOBS', false );

Notas:

  • Si creó un trabajo de traducción antes de añadir este código a su archivo wp-config.php, cancélelo y cree uno nuevo.
  • Puede enviar las etiquetas y opciones de los campos para su traducción a través del Escritorio de traducción si es necesario.

ACFML_HIDE_FIELD_ANNOTATIONS

A cada campo traducido, ACF Multilingual añade información sobre el valor en el idioma original.

Para eliminar esta información de los campos traducidos, puede añadir la siguiente línea al archivo wp-config.php de su sitio:

define( 'ACFML_HIDE_FIELD_ANNOTATIONS', true );

ACFML_REPEATER_SYNC_DEFAULT

Esta constante establece el estado predeterminado de la casilla de verificación Mantener los subcampos repetidores y flexibles en el mismo orden que el idioma predeterminado. ACFML muestra esta casilla en la caja Sincronizar traducciones de ACFML de una entrada que usa la opción Experto. El valor predeterminado es true, por lo que la casilla se muestra seleccionada al principio. Establezca la constante en false para empezar con la casilla desmarcada. La opción que guarde en una entrada anula este valor predeterminado.

Puede anular el valor predeterminado de ACFML_REPEATER_SYNC_DEFAULT en el archivo functions.php de su tema:

define('ACFML_REPEATER_SYNC_DEFAULT', false);

ACFML_SCAN_LOCAL_FIELDS

Esta constante establece el valor predeterminado del ajuste Sincronizar preferencias de traducción para campos locales en ACFHerramientas. Establézcala en true para sincronizar las preferencias de traducción de los campos locales (JSON local y campos registrados en PHP) en cada petición del panel de administración. Cuando la constante no está definida o es false, ACFML no los sincroniza automáticamente.

La opción que guarde en ACFHerramientas anula esta constante. Para sincronizar una vez, seleccione allí Sincronizar una vez ahora y haga clic en Aplicar.

Para obtener más información, consulte la documentación oficial de ACF sobre el uso de JSON local (se abre en una pestaña nueva).

Escrito porAmir