Estas instrucciones exigen algo de conocimiento técnico e implican un riesgo. Procede con cautela y haciendo copia de base de datos previamente.
Hace ya varios años fue abandonado qTranslate, el popular plugin gratuito para crear sitios multi-idioma en WordPress, y la versión desarrollada por sus usuarios, retomando y continuando con su mantenimiento, qTranslate-X, que llegó a tener bastante acogida y adaptaciones para su integración con otros plugins, también dejó de actualizarse.
Pero la novelesca historia de este desarrollo no acabó ahí y como Boris el ruso de la película de Cerdos y Diamantes, el plugin se negaba a desaparecer y apareció qTranslate-Xt, versión tomada por otros usuarios y que alcanza a tener soporte para WordPress 5.1.1. Aunque tiene soporte para integración con otros plugins populares, desafortunadamente no tiene soporte para Gutenberg y aunque está contemplado, parece que no lo tendrá por un largo rato.
Y, ¿ahora?
Este blog lo tenía en inglés, y usaba qTranslate como solución multi-idioma, y para mi desgracia, al actualizar a WordPress 5.0, migrando de qTranslate-X a qTranslate-Xt, comprobé que Gutenberg no era compatible. Y aunque no es popular, a mí sí me gusta Gutenberg como sistema de edición y lo quería usar. Esto hizo que perdiera algunas publicaciones en las que estaba trabajando y me hizo considerar el perfil de mis visitantes. Decidí enfocarme en usuarios de habla hispana y eliminé el plugin de multi-idioma.
El código generado por qTranslate
Pero como los usuarios de este plugin sabemos, genera un código que es evidente sólo al desactivarlo y aparece en títulos, contenidos, widgets, etc:
[:en], [:], [:es] , etc.
¿Cómo elimino ese código?
Puedes usar un plugin como qTranslate Clean, pero yo prefiero evitar el uso de plugins, como comentaré en un artículo más adelante.
La solución para no tener que hacerlo elemento por elemento es la siguiente, asumiendo que queremos mantener todo lo que tenemos en español:
(IMPORTANTE: realiza una copia de seguridad de tu base de datos antes de hacer esto):
1.Ingresa a phpMyAdmin y ubica tu base de datos.
2. Selecciona la pestaña SQL y ejecuta el siguiente script:
UPDATE wp_posts SET post_content = case when
LOCATE('[:es]', post_content) > 0
then
SUBSTRING(
post_content
FROM 1
FOR LOCATE(
'[:',
post_content,
LOCATE('[:es]', post_content) + 5
) - 1
)
else
post_content
end;
3. A continuación ejecuta la siguiente acción:
UPDATE wp_posts SET post_content = case when
LOCATE('[:es]', post_content) > 0
then
SUBSTRING(
post_content
FROM LOCATE(
'[:es]',
post_content
) + 5
)
else
post_content
end;
4. Luego:
UPDATE wp_posts SET post_title = case when
LOCATE('[:es]', post_title) > 0
then
SUBSTRING(
post_title
FROM 1
FOR LOCATE(
'[:',
post_title,
LOCATE('[:es]', post_title) + 5
) - 1
)
else
post_title
end;
5. Enseguida:
UPDATE wp_posts SET post_title = case when
LOCATE('[:es]', post_title) > 0
then
SUBSTRING(
post_title
FROM LOCATE(
'[:es]',
post_title
) + 5
)
else
post_title
end;
6. Si tienes extractos personalizados debes ejecutar además:
UPDATE wp_posts SET post_excerpt = case when
LOCATE('[:es]', post_excerpt) > 0
then
SUBSTRING(
post_excerpt
FROM 1
FOR LOCATE(
'[:',
post_excerpt,
LOCATE('[:es]', post_excerpt) + 5
) - 1
)
else
post_excerpt
end;
7. Y:
UPDATE wp_posts SET post_excerpt = case when
LOCATE('[:es]', post_excerpt) > 0
then
SUBSTRING(
post_excerpt
FROM LOCATE(
'[:es]',
post_excerpt
) + 5
)
else
post_excerpt
end;
Si detectas otro código como <!–:en–> deberás realizar los mismos pasos con este código.
Adicionalmente, es probable que queden los contenidos en ambos idiomas dentro de cada entrada, como a mí me sucedió, por lo que deberás eliminar el texto manualmente.
Deja una respuesta