WPML

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ónDescripción¿Visible en el ATE?
TraducirHabilita el valor del campo personalizado para su traducción
Copiar Copia el valor del campo personalizado del idioma predeterminado al idioma secundario y mantiene ambos sincronizadosNo
Copiar una vezCopia el valor del campo personalizado del idioma predeterminado al idioma secundario sin mantenerlos sincronizadosNo
IgnorarEvita copiar el valor del campo personalizado al idioma secundarioNo
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:

Campos personalizados con etiquetas en el Editor de traducción avanzado
Campos personalizados con etiquetas 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>

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:

Escrito por Amir · Última actualización 29 de enero de 2026