Aprenda a definir la configuración de traducción para los campos personalizados usando el archivo wpml-config.xml. Establezca opciones de traducción como traducir y copiar, e inserte atributos adicionales.
Establecer opciones de traducción para campos personalizados
WPML ofrece cuatro opciones de traducción para los campos personalizados:
| Acción | Descripción | ¿Visible en el ATE? |
|---|---|---|
| Traducir | Activa el valor del campo personalizado para su traducción | Sí |
| Copiar | Copia el valor del campo personalizado del idioma predeterminado al idioma secundario y mantiene ambos sincronizados | No |
| Copiar una vez | Copia el valor del campo personalizado del idioma predeterminado al idioma secundario sin mantener ambos sincronizados | No |
| Ignorar | Evita copiar el valor del campo personalizado al idioma secundario | No |
Ejemplo de cómo añadir campos personalizados al archivo de configuración de idiomas
<wpml-config>
<custom-fields>
<custom-field action="copy">quantity</custom-field>
<custom-field action="translate">custom-title</custom-field>
<custom-field action="copy">weight</custom-field>
<custom-field action="copy-once">bg-color</custom-field>
<custom-field action="translate">custom-description</custom-field>
<custom-field action="ignore">date-added</custom-field>
</custom-fields>
</wpml-config>Añadir atributos para campos personalizados
Atributos de etiqueta y grupo
WPML le permite añadir atributos al registro de un campo personalizado. Esto incluye:
- style: muestra una sola línea (line), un área de texto (textarea) o WYSIWYG (visual)
- label: da nombre al campo en su archivo de configuración. WPML no pasa la etiqueta al Editor de traducción avanzado, por lo que el traductor no la ve
- group: da nombre a un grupo al que pertenece el campo personalizado en su archivo de configuración. En el Editor de traducción avanzado:
- Todos los campos personalizados registrados se enumeran juntos, en Campos personalizados
- El nombre del grupo no se muestra, y no se crea ninguna sección propia para él
Ejemplo de atributos de campos personalizados
<wpml-config>
<custom-fields>
<custom-field action="translate" style="line" label="Title">custom-title</custom-field>
<custom-field action="translate" style="textarea" label="Description">custom-description</custom-field>
<custom-field action="translate" style="visual" label="Some content" group="Custom group">custom-wysiwyg</custom-field>
</custom-fields>
</wpml-config>En el Editor de traducción avanzado, los tres campos llegan juntos en Campos personalizados, en el orden en que se registraron:

Atributo encode
También puede añadir atributos encode opcionales para cambiar la codificación del valor predeterminado (codificación no). El atributo encode acepta los siguientes valores:
- json
- base64
- urlencode
Si quiere usar varias codificaciones, separe los valores con una coma:
Ejemplo de cómo añadir campos personalizados al archivo de configuración de idiomas para cambiar la codificación
<wpml-config>
<custom-fields>
<custom-field action="translate" encoding="json,base64">keywords</custom-field>
</custom-fields>
</wpml-config>Atributo translate link
Si su campo personalizado contiene un enlace, puede usar el atributo translate_link_target para forzar a WPML a comprobar y ajustar los enlaces en el campo personalizado. Para que este atributo funcione, asegúrese de que el enlace esté envuelto entre etiquetas <a>.
Ejemplo de cómo forzar a WPML a ajustar enlaces en un campo personalizado
<wpml-config>
<custom-fields>
<custom-field action="translate" translate_link_target="1">name_of_the_acf_field</custom-field>
</custom-fields>
</wpml-config>WPML traduce todas las subclaves en los campos personalizados de forma predeterminada. Para omitir esto, especifique qué subclaves deben traducirse.
Ejemplo de código para la traducción de subclaves en campos personalizados
<wpml-config>
<custom-fields>
<custom-field action="translate">with_attributes</custom-field>
<custom-field action="translate">with_deep_attributes</custom-field>
<custom-field action="translate">no_attributes</custom-field>
</custom-fields>
<custom-fields-texts>
<key name="with_attributes">
<key name="attribute1" />
<key name="attribute2" />
</key>
<key name="with_deep_attributes">
<key name="attribute1" />
<key name="attribute2">
<key name="level1">
<key name="level2">
</key>
</key>
</key>
</key>
</custom-fields-texts>
</wpml-config>Comodines
También puede usar comodines de la misma manera que se usan para los Textos de administración:
- Haga coincidir todos los subcampos que comiencen con title- usando el código:
<key name="title-*" /> - Haga coincidir todos los subcampos, lo que generalmente se usa para hacer coincidir un índice de array, usando el código:
<key name="*" /> - Para obtener
[{"title":"First title"},{"title":"Second title"}], use el código
Ejemplo de archivo de configuración con comodines
<wpml-config>
<custom-fields-texts>
<key name="key-name">
<key name="*">
<key name="title" />
</key>
</key>
</custom-fields-texts>
</wpml-config>Convertir automáticamente los ID en los campos personalizados de las entradas
A partir de WPML 4.8, puede declarar los ID ubicados en los campos personalizados de las entradas. WPML reemplaza los ID con sus versiones traducidas en el frontend.
Solo puede hacer esto cuando la opción de traducción es Copiar (es decir, cuando se usa <custom-field action="copy">).
En la sección custom-fields de su archivo wpml-config.xml, use:
- type para indicar a qué objeto se hace referencia, por ejemplo, post-ids
- sub-type (opcional) cuando quiera declarar el slug de un tipo de contenido
WPML puede detectar y convertir los ID en estos formatos:
- Un único ID (por ejemplo, 123)
- Una lista de ID separados por comas (por ejemplo, “123,456,789”)
- Un array (y un array codificado) de ID (por ejemplo, [123,456,789])
Ejemplo de cómo declarar ID en campos personalizados
<custom-fields> <custom-field action="copy" type="post-ids" sub-type="product">custom_field_with_id</custom-field> </custom-fields>
Cuando los ID están anidados en la sección custom-fields-texts en un subnivel, WPML los detectará y convertirá independientemente de la configuración de traducción del campo (copiar, traducir, etc.).
Ejemplo de cómo declarar ID en campos personalizados anidados
<wpml-config>
<custom-fields-texts>
<key name="custom_field_with_nested_ids">
<key name="custom_field_nested_key_with_ids" type="post-ids" sub-type="product" />
<key name="custom_field_nested_key_with_ids_with_wildcard_*" type="post-ids" sub-type="product" />
<key name="custom_field_nested_key_with_subkey">
<key name="custom_field_nested_key_with_subkey_with_ids" type="post-ids" sub-type="product" />
</key>
</key>
</custom-fields-texts>
</wpml-config>Usando la misma sintaxis de type y sub-type, puede declarar ID en textos de administración (tabla wp_options).
Establecer opciones de traducción para campos personalizados de términos de taxonomía
Para traducir campos personalizados de términos de taxonomía, necesita especificar el nombre del campo y la acción que WPML debe realizar: translate, copy, copy-once, ignore.
Anide este marcado bajo la etiqueta wpml-config.
Puede establecer las siguientes opciones de traducción para los campos personalizados de términos:
- translate: permite a su usuario traducir el valor del término personalizado. Estos términos aparecen en la pantalla del Editor de traducción y se pueden traducir manual o automáticamente, o enviarse a otros traductores.
- copy: copia el valor del término personalizado del idioma predeterminado a los idiomas secundarios. Esto significa que la actualización del valor del término personalizado del idioma predeterminado siempre se copiará al idioma secundario. Los términos personalizados configurados en copy no se muestran en la pantalla del Editor de traducción.
- copy-once: copia el valor del término personalizado al idioma secundario en el proceso de traducción inicial. Los términos personalizados que usan la acción copy-once no aparecerán en la pantalla del Editor de traducción. Sin embargo, el usuario puede cambiar el valor del término personalizado del idioma secundario para que sea diferente del idioma predeterminado usando la pantalla de edición de la entrada.
- ignore: evita que el término personalizado se copie al idioma secundario.
Ejemplo de cómo añadir términos personalizados al archivo de configuración de idiomas
<wpml-config>
<custom-term-fields>
<custom-term-field action="copy">term_meta_A</custom-term-field>
<custom-term-field action="translate">term_meta_B</custom-term-field>
<custom-term-field action="ignore">term_meta_C</custom-term-field>
<custom-term-field action="copy-once">term_meta_D</custom-term-field>
</custom-term-fields>
</wpml-config>Convertir automáticamente los ID almacenados en campos personalizados de términos de taxonomía
Solo puede hacer esto cuando el campo está configurado en Copiar (es decir, cuando se usa <custom-term-field action="copy">).
Al igual que con los campos personalizados de las entradas, puede declarar los ID de objetos que se encuentran en los campos personalizados de taxonomía. WPML luego los convierte automáticamente a sus versiones traducidas.
En la sección custom-term-fields, use:
- type para indicar a qué objeto se hace referencia, por ejemplo, post-ids o taxonomy-ids
- sub-type (opcional) cuando quiera declarar la entidad específica
Ejemplo de cómo declarar ID en campos personalizados de términos
<wpml-config>
<custom-term-fields>
<custom-term-field action="copy" type="post-ids" sub-type="product">custom_term_field_with_id</custom-term-field>
</custom-term-fields>
</wpml-config>Recursos adicionales
Para obtener más información sobre el archivo wpml-config.xml, visite la guía de Archivos de configuración de idiomas.
Para personalizar otros elementos usando el archivo wpml-config.xml, visite nuestras guías adicionales:
- Traducir shortcodes personalizados con WPML
- Registrar contenido del maquetador visual para su traducción
- Registrar widgets personalizados del maquetador visual para su traducción
- Registrar términos, Tipos y taxonomías personalizados como traducibles
- Hacer traducibles los bloques de Gutenberg personalizados
- Traducir los textos que el tema y los plugins guardan en wp_options
- Personalizar el selector de idiomas de WPML usando el archivo de configuración de WPML