Saltar navegación

Este hilo está resuelto. Aquí tienes una descripción del problema y la solución.

Problema:
Si estás intentando acceder a una página que es un CPT traducido en varios idiomas, montado con PODs y mostrado con una plantilla de Elementor Pro, y en el idioma original se ve correctamente pero en las traducciones obtienes un error fatal del tipo 'Fatal error: Uncaught TypeError: str_contains(): Argument #1 ($haystack) must be of type string, array given', tenemos una solución para ti.
Solución:
Primero, asegúrate de hacer una copia de seguridad completa de tu sitio. Luego, sigue estos pasos:
1. Ve a Apariencia > Editor de archivos del tema;
2. Selecciona el archivo functions.php de tu tema;
3. Añade el siguiente código al final del archivo:

add_filter( 'pods_pods_field', 'customize_related_field_output', 10, 4 );<br />function customize_related_field_output( $value, $row, $params, $pods ) {<br />    if ( isset( $params ) && $params->name === 'titulo_seo' && is_array( $value ) ) {<br />        $value = implode( '', $value );<br />    }<br />    return $value;<br />}

4. Ve a WPML > Configuración > Traducción de tipos de contenido y marca "Pods", "Grupos del Pod" y "Campos pod" como No traducible;
5. Ve al Administrador de PODs, cambia el idioma en la barra superior y elimina las traducciones.
Además, puedes ver un video que muestra el proceso en este enlace.

Si esta solución no resuelve tu problema o parece no ser relevante debido a actualizaciones o diferencias en tu caso, te recomendamos abrir un nuevo ticket de soporte. También te sugerimos revisar los problemas conocidos, verificar la versión de la solución permanente y confirmar que tienes instaladas las últimas versiones de temas y plugins.

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: 

Este tema contiene 5 respuestas, tiene 0 voces.

Última actualización por Lucas Vidal de Andrade hace 3 semanas.

Asistido por: Lucas Vidal de Andrade.

Autor Publicaciones
mayo 13, 2025 a las 2:10 pm

lauraR-35

Antecedentes del problema:
Estoy intentando acceder a una página que es un CPT traducido en varios idiomas, montado con PODs y mostrado con una plantilla de Elementor Pro. En el idioma original se ve correctamente. Dejamos el Debug activo. Link a la página donde se puede ver el problema: enlace oculto. Esperaba ver esta sección traducida al inglés: enlace oculto.

Síntomas:
En las traducciones, obtengo un error fatal: Fatal error: Uncaught TypeError: str_contains(): Argument #1 ($haystack) must be of type string, array given in /mnt/web_data/web/develop/wp_agd/wp-includes/blocks.php:1984 Stack trace: #0 /mnt/web_data/web/develop/wp_agd/wp-includes/blocks.php(1984): str_contains() #1 /mnt/web_data/web/develop/wp_agd/wp-includes/formatting.php(5209): filter_block_content() #2 /mnt/web_data/web/develop/wp_agd/wp-includes/class-wp-hook.php(324):

Preguntas:
¿Por qué se produce un error fatal al intentar ver la página traducida?
¿Cómo puedo solucionar el error de tipo en str_contains()?

mayo 13, 2025 a las 2:46 pm
mayo 13, 2025 a las 8:48 pm
mayo 14, 2025 a las 8:37 am #17030951

lauraR-35

Buenos días,

Gracias por la respuesta. Nos parece el paso más lógico.

Ya tenéis instalados los siguientes plugins:

- Pods (Y alta de el CPT Servicio)
- Elementor Pro y Elementor

Temas:

- Hello Elementor

Contenidos:

- Servicio: Gestoría Administrativa

Hemos creado las plantillas de Elementor para el desarrollo de Servicios y Header, pero sin meternos en mucho detalle, lo justo para que la web tenga el mismo contenido.

Podéis acceder al servicio funcionando correctamente en Español desde aquí:

enlace oculto

Nos quedamos a la espera de vuestro comentarios.

Gracias y un saludo

mayo 14, 2025 a las 3:28 pm #17033402

Lucas Vidal de Andrade
Partidario de WPML desde 11/2023

Idiomas: Inglés (English ) Español (Español ) Alemán (Deutsch ) Portugués, Brasil (Português )

Zona horaria: America/Sao_Paulo (GMT-03:00)

Hola,

Gracias por compartir. El error no ocurre en la base de pruebas, lo que indica que hay algún problema en tu sitio. He enviado este ticket a nuestros desarrolladores, quienes analizarán tu sitio y nos responderán en unos días. Te mantendré informado. Gracias.

mayo 20, 2025 a las 10:20 am #17052044

lauraR-35

Buenos días,
¿Los técnicos lo han podido revisar? nos urge bastante,
gracias.

mayo 20, 2025 a las 3:51 pm #17053664

Lucas Vidal de Andrade
Partidario de WPML desde 11/2023

Idiomas: Inglés (English ) Español (Español ) Alemán (Deutsch ) Portugués, Brasil (Português )

Zona horaria: America/Sao_Paulo (GMT-03:00)

Hola, desafortunadamente todavía no. Voy a verificar nuevamente con ellos y te aviso.

mayo 22, 2025 a las 6:56 pm #17063360

Lucas Vidal de Andrade
Partidario de WPML desde 11/2023

Idiomas: Inglés (English ) Español (Español ) Alemán (Deutsch ) Portugués, Brasil (Português )

Zona horaria: America/Sao_Paulo (GMT-03:00)

Hola,

Gracias por esperar. Encontramos una solución. Haz una copia de seguridad completa de tu sitio y sigue estos pasos:

1. Ve a Apariencia > Editor de archivos del tema;
2. Selecciona el archivo functions.php de tu tema;
3. Añade el siguiente código al final del archivo:

add_filter( 'pods_pods_field', 'customize_related_field_output', 10, 4 );
function customize_related_field_output( $value, $row, $params, $pods ) {
	if ( isset( $params ) && $params->name === 'titulo_seo' && is_array( $value ) ) {
		$value = implode( '', $value );
	}
	return $value;
}

4. Ve a WPML > Configuración > Traducción de tipos de contenido y marca "Pods", "Grupos del Pod" y "Campos pod" como No traducible;
5. Ve al Administrador de PODs, cambia el idioma en la barra superior y elimina las traducciones.

Grabé un video mostrando el proceso:
enlace oculto

Esto debería resolver el problema.