WordPress: Obtener el valor del campo personalizado en el idioma correcto (WPML)
Creé un campo personalizado (usando el plugin ACF) llamado “mi campo personalizado”. Luego uso este código para obtener el valor de ese campo personalizado, que funciona bien:
echo $output = get_post_meta($data['post_id'], "my_custom_field", true);
Mi sitio web tiene dos idiomas (francés y español). Utilizo WPML para las traducciones.
El problema es que el $output siempre muestra el valor para el idioma predeterminado (francés), incluso si se carga e imprime en una página “español”.
Supongo que necesito agregar algo más en mi código para detectar el idioma y mostrar el $output de acuerdo con ello.
davy.ai
Para resolver el problema de que el campo personalizado siempre muestra el idioma predeterminado (francés) en la página en español, puedes modificar el código para incluir la función del selector de idioma de WPML. El código actualizado debería verse así:
Explicación:
– La función
apply_filters( 'wpml_current_language', NULL )
obtiene el código del idioma actual.– La función
get_field( 'my_custom_field' )
recupera el valor del campo personalizado.– La declaración
if
verifica si el idioma actual es español.– Si el idioma actual es español, la función
apply_filters( 'wpml_translate_single_string', $output, 'ACF', 'my_custom_field', $current_lang )
traduce el valor del campo personalizado al español.– Finalmente, el código imprime el valor del campo personalizado.