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 hook le permite determinar si los campos o grupos de campos de ACF deben traducirse. Al usar este filtro, puede omitir la traducción de campos o grupos específicos en función de su lógica personalizada.
Tipo: Filtro
Disponibilidad: ACFML 2.1.4
Parámetros:
$shouldTranslate
(bool) (Obligatorio) Si el campo o grupo de campos debe traducirse. El 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 la 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;
} );
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 el modo de Mismos campos o Campos diferentes.
Nota: Este filtro solo cambia 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, tras 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 ( 'link' === $fieldType ) {
return 2; // WPML_TRANSLATE_CUSTOM_FIELD
}
return $fieldTranslationPreference;
}, 10, 3 );
Este ejemplo fuerza que el tipo de campo link sea traducible, anulando su preferencia predeterminada copy o copy_once.
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 cadenas de grupos 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 le 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
Puede usar esta constante para establecer el valor predeterminado de la función de sincronización del campo Repeater. Está establecido en true de forma predeterminada. Esto significa que los campos Repeater se sincronizan automáticamente en todas las traducciones. Si establece esta constante en false, se desactivará la sincronización del campo Repeater.
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
Establecer esta constante en false desactiva el escaneo de archivos JSON en busca de campos locales.
Esto significa que si cambia la preferencia de traducción en los campos locales, no se sincronizará con la base de datos. Debe establecer la preferencia de traducción manualmente para los campos.
Para obtener más información, consulte la documentación oficial de ACF sobre el uso de JSON local.