Este hilo está resuelto. Aquí tienes una descripción del problema y la solución.
Problem:
Tengo un error en mi sitio, con un campo de una página de opciones creada en ACF
Solution:
Usa la opción de "Different Fields Across Languages" en los fieldgroups asociados a las páginas de opciones y luego guarda los cambios. haz un pequeño cambio en un campo de la página de opciones en todos los idiomas y luego revisa si el problema se ha arreglado.
Relevant Documentation:
https://wpml.org/documentation/related-projects/translate-sites-built-with-acf/
(actualiza a ACFML v2+ para tener esta opción)
Este es el foro de soporte técnico de WPML, el plugin multilingüe de WordPress.
Todas las personas pueden leerlo pero solo los clientes de WPML pueden ingresar comentarios. El equipo de WPML responde en los foros 6 días a la semana, 22 horas por día.
Etiquetado: Exception
Este tema contiene 16 respuestas, tiene 3 voces.
Última actualización por Alejandro hace 1 año, 7 meses.
Asistido por: Alejandro.
Autor | Entradas |
---|---|
noviembre 3, 2023 en 6:28 pm #14728077 | |
hermesG |
Estoy tratando de: Por otro, en castellano (idioma secundario) da el siguiente error: He probado eliminando las tablas de la base de datos como comentan en este hilo: URL de (mi) sitio web donde aparece el problema: Yo esperaba ver: En vez de eso, obtuve: |
noviembre 6, 2023 en 7:57 am #14735183 | |
Carlos Rojas Partidario de WPML desde 03/2017
Idiomas: Inglés (English ) Español (Español ) Zona horaria: Europe/Madrid (GMT+02:00) |
Hola, Por favor realice los siguientes pasos: Quedo a la espera de su mensaje. |
noviembre 6, 2023 en 10:20 am #14736373 | |
hermesG |
Hola, gracias por la respuesta. He seguido los pasos y el problema sigue. Se ha actualizado de la versión 4.6.6 a la 4.6.7 Sigue sin actualizar la traducción en el admin ni muestra nada en el sitio, salta el error, sólo en castellano. La página en el idioma original es esta: enlace oculto Sin embargo los datos los cogemos de una página de opciones personalizada (he editado en ambas y nada). |
noviembre 6, 2023 en 3:46 pm #14739653 | |
Carlos Rojas Partidario de WPML desde 03/2017
Idiomas: Inglés (English ) Español (Español ) Zona horaria: Europe/Madrid (GMT+02:00) |
Hola, Me gustaría solicitar acceso temporal al sitio (wp-admin y FTP) con el objetivo de ver el problema más de cerca. Su próxima respuesta será privada y en ella encontrará los campos correspondientes a las credenciales solicitadas. Aunque no realizaré ningún cambio en el sitio siempre es recomendable crear una copia de seguridad del sitio completo antes de compartir las credenciales de acceso. |
noviembre 6, 2023 en 5:11 pm #14740533 | |
Carlos Rojas Partidario de WPML desde 03/2017
Idiomas: Inglés (English ) Español (Español ) Zona horaria: Europe/Madrid (GMT+02:00) |
Muchas gracias por compartir las credenciales He intentado actualizar los plugins y temas desactualizados pero me solicita las credenciales FTp y no me funcionan las que usted compartió. Puede comprobar este problema? |
noviembre 6, 2023 en 5:18 pm #14740545 | |
hermesG |
Hola, a mi si me funciona el acceso ftp con las credenciales que te he pasado. Te las puedo volver a pasar pero por privado ¿cómo lo hago? |
noviembre 7, 2023 en 10:10 am #14745775 | |
Carlos Rojas Partidario de WPML desde 03/2017
Idiomas: Inglés (English ) Español (Español ) Zona horaria: Europe/Madrid (GMT+02:00) |
Hola, Solo le pido que actualice los plugins y temas desactualizados en el sitio para poder descartarlo como una causa del problema. Por favor hágame saber cuando lo haya hecho. |
noviembre 7, 2023 en 11:13 am #14746541 | |
hermesG |
Ok, ya están actualizados. |
noviembre 7, 2023 en 1:07 pm #14747327 | |
Carlos Rojas Partidario de WPML desde 03/2017
Idiomas: Inglés (English ) Español (Español ) Zona horaria: Europe/Madrid (GMT+02:00) |
Hola, He revisado la configuración y parece correcta. Si elimina la página Portfolio en el idioma original y la vuelve a traducir desde el Euskera, persite el problema? Por otra parte, puede describir cómo muestra estos campos en la página Portfolio? |
noviembre 7, 2023 en 1:40 pm #14747661 | |
hermesG |
Hola, de momento te paso el código donde saca los contenidos de la página de opciones. El error da justo ahí, en ese primer "get_field('portfolio_section', 'option')". El <main> no lo llega a mostrar. El campo en si es un repeater, pero creo que el error lo está dando por un campo interior 'items' que es contenido flexible. De hecho el repeater y otros campos dentro de este parece que si cogen la traducción en el admin, son los campos dentro del contenido flexible los que se quedan siempre en euskera al guardar. <?php $sections = get_field('portfolio_section', 'option') ? get_field('portfolio_section', 'option') : array(); ?> <main class="portfolio__main"> <div class="grid-row no-gutters"> <div class="grid-row-item 50w mobile-hidden"> <div class="portfolio__column is-sticky hide-logo"> <div class="portfolio__column-content" data-inview-trigger> <div class="portfolio-index"> <?php foreach ( $sections as $section ) : $section_title = $section['section_title']; $section_id = hg_slugify($section_title); if ($section_title) : ?> <div class="portfolio-index__item"> <h2 class="size-h1" data-inview-page="splitLines" data-inview-scroll="splitLines"> <a class="no-barba" href="<?php echo '#'. $section_id; ?>"><?php echo $section_title; ?></a> </h2> </div> <?php endif; endforeach; ?> </div> </div> </div> </div> <div class="grid-row-item 50w mobile-100w"> <div class="portfolio__column"> <div class="portfolio__column-content"> <?php foreach( $sections as $section ) : $section_title = $section['section_title']; $section_id = hg_slugify($section_title); $section_items = $section['items']; ?> <section id="<?php echo $section_id; ?>" class="portfolio-section" data-inview-trigger> <?php if ($section_title) : ?> <h2 class="portfolio-section__title size-h1" data-inview-page="splitLines" data-inview-scroll="splitLines"><?php echo $section_title; ?></h2> <div class="portfolio-list" data-inview-page="fadeinUp" data-inview-scroll="fadeinUp"> <?php foreach ( $section_items as $item ) : $item_title = $item['item_title']; $item_desc = $item['description']; $add_link = $item['add_link']; $link_text = $add_link && $item['link_text'] ? $item['link_text'] : ''; $link_url = $add_link && $item['link_url'] ? $item['link_url'] : ''; $link_target = (strstr($link_url, get_bloginfo('url'))) ? '_self' : '_blank'; ?> <div class="portfolio-list__item portfolio-item"> <?php if ( $item_title ) : echo '<h3>'. $item_title .'</h3>'; endif; if ( $item_desc ) : echo '<div class="text-300">'. $item_desc .'</div>'; endif; if ( $add_link ) : echo '<a class="portfolio-item__link has-underline" href="'. $link_url .'" target="'. $link_target .'">'. $link_text .'</a>'; endif; ?> </div> <?php endforeach; ?> </div> <?php endif; ?> </section> <?php endforeach; ?> </div> </div> </div> </div> </main> |
noviembre 7, 2023 en 3:03 pm #14748845 | |
Carlos Rojas Partidario de WPML desde 03/2017
Idiomas: Inglés (English ) Español (Español ) Zona horaria: Europe/Madrid (GMT+02:00) |
Muchas gracias por compartir esta información. Todo indica que se trata de una solución que requere código presonalizado y este tipo de soluciones cae fuera del alcance de nuestro servicio de soporte. De todas formas voy a consultar con mis colegas acerca de este caso y regresaré con usted en cuanto tenga más información. Mientras tanto le recomiendo que compruebe si ha configurado todos los campos de manera correcta utilizando esta guía como referencia: https://wpml.org/documentation/related-projects/translate-sites-built-with-acf/ |
noviembre 8, 2023 en 8:48 am #14753721 | |
hermesG |
Hola, los campos están configurados correctamente según la documentación. El caso es que el sitio lleva funcionando ya varios años así. El problema ocurre desde septiembre de este año. Sospecho que puede haber algún problema con una actualización reciente de wpml y los campos de contenido flexible en las páginas de opciones. Hay varios hilos donde se menciona el mismo error, todos de este año: Pero no he encontrado una solución que nos valga. De momento sólo se me ocurre pasar estos campos a una página página, pero se perderán todos los contenidos claro. |
noviembre 8, 2023 en 3:21 pm #14758295 | |
Carlos Rojas Partidario de WPML desde 03/2017
Idiomas: Inglés (English ) Español (Español ) Zona horaria: Europe/Madrid (GMT+02:00) |
Hola, He consultado a mis colegas al respecto y estos son los pasos que han recomendado: Quedo a la espera de su mensaje. |
noviembre 8, 2023 en 5:19 pm #14759935 | |
hermesG |
Hola, gracias, te digo. Por lo pronto editar el idioma original y guardar la traducción sigue sin funcionar. La traducción no se actualiza, como si estuviese en modo "copy", y en el sitio peta por el error. No puedo hacer un var_dump de $sections porque salta el error y no llega a mostrar el contenido del array. He hecho otra cosa, a ver si os ayuda. En la línea del plugin que hace saltar el error (class-acf-field-flexible-content.php:783), hay esto: // bail early if layout deosnt contain sub fields if ( empty( $layouts[ $l ] ) ) { // línea 783 continue; } Esa variable $l parece ser un array, y por eso peta. array(6) { ["acf_fc_layout"]=> string(4) "item" ["field_60b3d76e6fabd"]=> string(46) "Ordiziako parke-sarea / 2021 /Ordiziako Udala " ["field_60b3d77f6fabe"]=> string(191) "<span style="font-weight: 400;">Ordiziako parke-sarearen definizio parte-hartzailea, non sarearen egitura orokorra, parke bakoitzaren izaera eta diseinurako irizpideak zehaztu diren. </span>" ["field_60b3d7a86fabf"]=> string(1) "0" ["field_60b3d7b86fac0"]=> string(24) "Informazio gehiago hemen" ["field_60b3d7d16fac1"]=> string(28) "<em><u>enlace oculto</u></em>" } Y el array de $layouts: array(1) { ["item"]=> array(6) { [0]=> array(25) { ["ID"]=> int(30) ["key"]=> string(19) "field_60b3d76e6fabd" ["label"]=> string(12) "Título item" ["name"]=> string(10) "item_title" ["aria-label"]=> string(0) "" ["prefix"]=> string(3) "acf" ["type"]=> string(4) "text" ["value"]=> NULL ["menu_order"]=> int(0) ["instructions"]=> string(0) "" ["required"]=> int(0) ["id"]=> string(0) "" ["class"]=> string(0) "" ["conditional_logic"]=> int(0) ["parent"]=> int(29) ["wrapper"]=> array(3) { ["width"]=> string(0) "" ["class"]=> string(0) "" ["id"]=> string(0) "" } ["parent_layout"]=> string(20) "layout_60b3d757812cb" ["wpml_cf_preferences"]=> int(2) ["default_value"]=> string(0) "" ["maxlength"]=> string(0) "" ["placeholder"]=> string(0) "" ["prepend"]=> string(0) "" ["append"]=> string(0) "" ["_name"]=> string(10) "item_title" ["_valid"]=> int(1) } [1]=> array(25) { ["ID"]=> int(31) ["key"]=> string(19) "field_60b3d77f6fabe" ["label"]=> string(12) "Descripción" ["name"]=> string(11) "description" ["aria-label"]=> string(0) "" ["prefix"]=> string(3) "acf" ["type"]=> string(7) "wysiwyg" ["value"]=> NULL ["menu_order"]=> int(1) ["instructions"]=> string(0) "" ["required"]=> int(0) ["id"]=> string(0) "" ["class"]=> string(0) "" ["conditional_logic"]=> int(0) ["parent"]=> int(29) ["wrapper"]=> array(3) { ["width"]=> string(0) "" ["class"]=> string(0) "" ["id"]=> string(0) "" } ["parent_layout"]=> string(20) "layout_60b3d757812cb" ["wpml_cf_preferences"]=> int(2) ["default_value"]=> string(0) "" ["tabs"]=> string(6) "visual" ["toolbar"]=> string(5) "basic" ["media_upload"]=> int(0) ["delay"]=> int(0) ["_name"]=> string(11) "description" ["_valid"]=> int(1) } [2]=> array(25) { ["ID"]=> int(32) ["key"]=> string(19) "field_60b3d7a86fabf" ["label"]=> string(24) "Enlace más información" ["name"]=> string(8) "add_link" ["aria-label"]=> string(0) "" ["prefix"]=> string(3) "acf" ["type"]=> string(10) "true_false" ["value"]=> NULL ["menu_order"]=> int(2) ["instructions"]=> string(0) "" ["required"]=> int(0) ["id"]=> string(0) "" ["class"]=> string(0) "" ["conditional_logic"]=> int(0) ["parent"]=> int(29) ["wrapper"]=> array(3) { ["width"]=> string(0) "" ["class"]=> string(0) "" ["id"]=> string(0) "" } ["parent_layout"]=> string(20) "layout_60b3d757812cb" ["wpml_cf_preferences"]=> int(2) ["message"]=> string(0) "" ["default_value"]=> int(0) ["ui_on_text"]=> string(0) "" ["ui_off_text"]=> string(0) "" ["ui"]=> int(1) ["_name"]=> string(8) "add_link" ["_valid"]=> int(1) } [3]=> array(25) { ["ID"]=> int(33) ["key"]=> string(19) "field_60b3d7b86fac0" ["label"]=> string(12) "Texto enlace" ["name"]=> string(9) "link_text" ["aria-label"]=> string(0) "" ["prefix"]=> string(3) "acf" ["type"]=> string(4) "text" ["value"]=> NULL ["menu_order"]=> int(3) ["instructions"]=> string(0) "" ["required"]=> int(0) ["id"]=> string(0) "" ["class"]=> string(0) "" ["conditional_logic"]=> array(1) { [0]=> array(1) { [0]=> array(3) { ["field"]=> string(19) "field_60b3d7a86fabf" ["operator"]=> string(2) "==" ["value"]=> string(1) "1" } } } ["parent"]=> int(29) ["wrapper"]=> array(3) { ["width"]=> string(0) "" ["class"]=> string(0) "" ["id"]=> string(0) "" } ["parent_layout"]=> string(20) "layout_60b3d757812cb" ["wpml_cf_preferences"]=> int(2) ["default_value"]=> string(17) "Más información" ["maxlength"]=> string(0) "" ["placeholder"]=> string(0) "" ["prepend"]=> string(0) "" ["append"]=> string(0) "" ["_name"]=> string(9) "link_text" ["_valid"]=> int(1) } [4]=> array(22) { ["ID"]=> int(34) ["key"]=> string(19) "field_60b3d7d16fac1" ["label"]=> string(10) "URL enlace" ["name"]=> string(8) "link_url" ["aria-label"]=> string(0) "" ["prefix"]=> string(3) "acf" ["type"]=> string(3) "url" ["value"]=> NULL ["menu_order"]=> int(4) ["instructions"]=> string(0) "" ["required"]=> int(0) ["id"]=> string(0) "" ["class"]=> string(0) "" ["conditional_logic"]=> array(1) { [0]=> array(1) { [0]=> array(3) { ["field"]=> string(19) "field_60b3d7a86fabf" ["operator"]=> string(2) "==" ["value"]=> string(1) "1" } } } ["parent"]=> int(29) ["wrapper"]=> array(3) { ["width"]=> string(0) "" ["class"]=> string(0) "" ["id"]=> string(0) "" } ["parent_layout"]=> string(20) "layout_60b3d757812cb" ["wpml_cf_preferences"]=> int(1) ["default_value"]=> string(0) "" ["placeholder"]=> string(0) "" ["_name"]=> string(8) "link_url" ["_valid"]=> int(1) } [5]=> array(23) { ["ID"]=> int(35) ["key"]=> string(19) "field_60b3d8066fac2" ["label"]=> string(0) "" ["name"]=> string(0) "" ["aria-label"]=> string(0) "" ["prefix"]=> string(3) "acf" ["type"]=> string(7) "message" ["value"]=> bool(false) ["menu_order"]=> int(5) ["instructions"]=> string(0) "" ["required"]=> int(0) ["id"]=> string(0) "" ["class"]=> string(0) "" ["conditional_logic"]=> int(0) ["parent"]=> int(29) ["wrapper"]=> array(3) { ["width"]=> string(0) "" ["class"]=> string(0) "" ["id"]=> string(0) "" } ["parent_layout"]=> string(20) "layout_60b3d757812cb" ["wpml_cf_preferences"]=> int(1) ["message"]=> string(6) " " ["new_lines"]=> string(7) "wpautop" ["esc_html"]=> int(0) ["_name"]=> string(0) "" ["_valid"]=> int(1) } } } Espero que os ayude. Por otra parte, si necesitáis tocar algo en el sitio, este es una copia que he subido para testear esto, con lo que no hay problema. |
noviembre 9, 2023 en 1:04 pm #14767101 | |
Alejandro Partidario de WPML desde 02/2018
Idiomas: Inglés (English ) Español (Español ) Italiano (Italiano ) Zona horaria: Europe/Rome (GMT+02:00) |
Hola! El colega carlos me ha transferido el ticket ya que está de vacaciones y no te queremos dejar solo. Me gustaría dar un paso hacia atrás por un momento. Habías mencionado que inicialmente el problema era en esta linea: $sections = get_field('portfolio_section', 'option') ? get_field('portfolio_section', 'option') : array(); A su vez mencionas que el problema podría ser porque hay un campo flexible dentro de ese campo que da el error pero mencionas que el otro contenido si lo muestra, sin embargo mencionas que no puedes hacer el var_dump porque salta el error allí pero como has hecho para verificar que el otro contenido si lo ve? Por ahora, por lo que entiendo $sections queda con el valor de get_field('portfolio_section', 'option') pero algo da error allí. 1) si tu haces en una linea antes un var_dump de ese campo y luego agregas un die(); en la siguiente linea, que ves? si es un error, es solo ese que pusiste al inicio del ticket? el que da directamente en ACF? 2) veo que esta opción tiene una regla: enlace oculto, y en este caso puede que el problema sea con la configuración que tienes de ese field group. Has tratado de cambiarla a "different fields across languages" en vez de "expert"? Te he hecho un video mostrandote un poco lo que he visto: enlace oculto allí te menciono casi todo lo que te escribo aquí pero te doy también algunas alternativas a probar para ver si el problema se logra resolver. Avísame que tal te va para poder entender cómo continuar. |