Aprenda a definir la configuración de traducción para los campos personalizados mediante el archivo wpml-config.xml. Establezca opciones de traducción como traducir y copiar, e inserte atributos adicionales.
Establecer las 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 | Habilita 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 mantenerlos 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 que aparecen en el Editor de traducción avanzado. Esto incluye:
- style: muestra una sola línea (line), un área de texto (textarea) o WYSIWYG (visual)
- label: muestra una etiqueta junto al campo
- group: especifica a qué grupo pertenece el campo personalizado. Cuando un campo está en un grupo:
- El campo se elimina de la sección de campos personalizados
- El campo se añade a la sección del grupo relacionado
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>Así es como se verán estos atributos en el Editor de traducción avanzado:

Atributo de codificación
También puede añadir atributos encode opcionales para cambiar la codificación respecto al valor predeterminado (sin codificación). El atributo de codificación 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 de traducción de enlaces
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 en etiquetas <a>.
Ejemplo de cómo forzar a WPML a ajustar los 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>De forma predeterminada, WPML traduce todas las subclaves en los campos personalizados. 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 empiezan por title- usando el código:
<key name="title-*" /> - Haga coincidir todos los subcampos, y generalmente se usa para hacer coincidir el índice de un array, mediante 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 por sus versiones traducidas en el frontend.
Solo puede hacer esto cuando la opción de traducción es Copiar (es decir, al usar <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 solo ID (p. ej., 123)
- Una lista de ID separados por comas (p. ej., “123,456,789”)
- Un array (y array codificado) de ID (p. ej., [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 los textos de administración (tabla wp_options).
Establecer las opciones de traducción para los campos personalizados de términos de taxonomía
Para traducir los campos personalizados de los términos de taxonomía, necesita especificar el nombre del campo y la acción que WPML debe realizar: traducir, copiar, copiar una vez, ignorar.
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 los campos personalizados de términos de taxonomía
Solo puede hacer esto cuando el campo está configurado en Copiar (es decir, al usar <custom-term-field action="copy">).
Al igual que con los campos personalizados de las entradas, puede declarar los ID de objetos contenidos en los campos personalizados de taxonomía. A continuación, WPML 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 los 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 mediante el archivo wpml-config.xml, visite nuestras guías adicionales:
- Traducir shortcodes personalizados con WPML
- Registrar el 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 que los bloques de Gutenberg personalizados sean traducibles
- Traducir textos que el tema y los plugins guardan en wp_options
- Personalizar el selector de idiomas de WPML mediante el archivo de configuración de WPML