Seleccionar página

Elimina qTranslate X en WordPress, ¡adios códigos huérfanos!

lunes, 4 enero 2016 | WordPress | 26 Comentarios

Siempre he sido defensor de las cosas bien hechas, que funcionan y aportan soluciones a los problemas cotidianos que podamos encontrar en WordPress. Cuando algo no funciona ¡deshazte de ello!, simple y radical, por eso quiero explicarte como eliminar qTranslate X en WordPress y pasar página.

Traducir contenidos en un sitio web es un tema muy serio como para tomarlo a la ligera, hay que elegir bien el plugin. Yo, como muchos usuarios, hace tiempo que opté por qTranslate X en WordPress para mostrar la web en determinados idiomas.

Es verdad que desde que surgió qTranslate hasta la fecha muchas cosas han pasado con el plugin, ha sido abandonado, se ha convertido luego en mqTranslate y finalmente acabo en un fork como qTranslate X a manos de otros desarrolladores que lo gestionan hasta la fecha.

…sayonara qTranslate X

Durante todo este proceso me he frustrado, cabreado y hasta desistido de usarlo en varias ocasiones, pero el SEO y otras razones podían más que mi desencanto y siempre acababa postergando lo inevitable.

[piopialo vcboxed=»1″]Cuando algo no funciona, ¡deshazte de ello!, no alargues la agonia.[/piopialo]

He pasado por muchos momentos burros en este sitio web, me he despeñado de mi posicionamiento unas 3 veces, 2 de ellas de forma brutal, perdiendo casi el 90% del posicionamiento ganado a pulso desde 2004, y el colmo ha sido ver posicionar mis contenidos recientemente con un [short code] procedente de qTranslate X en WordPress (en activo), que ha sido como un tortazo un día de invierto a las 7 de la mañana esperando el bus en la parada a 2 grados de temperatura ¿te lo imaginas?

Al final aprovechando el cambio de año y de look en mi sitio web, he decidido darle carpetazo a qTranslate X y con ello a la pésima gestión de etiquetas [:es] en campos title y otros, y aquí te cuento el proceso de eliminación de las mismas en la base de datos.

La eliminación del plugin qTranslate X en WordPress no debería representar ningún problema para ti, ya que solamente implica realizar una copia de seguridad, ir a la configuración del plugin y marcar las opciones:

  1. Ve a Ajustes, Idiomas
  2. Desactiva todos los idiomas, excepto el idioma predeterminado (Inglés).
  3. En la pestaña Importar/Exportar ve a la opción Restablecer qTranslate (1).
  4. Elimina el plugin qTranslate X por completo.

(1) Marca las siguientes opciones:

Opciones para desinstalar qTranslate X

Ahora toca meterle mano a los códigos cortos residuales que posiblemente no se hayan eliminado en el proceso anterior, sobre todo si pasaste a qTranslate X en WordPress desde mqTranslate o qTranslate.

Proceso resumido de eliminación de códigos cortos:

  1. Accede a tu Panel de Hosting, Bases de Datos, phpMyAdmin
  2. Realiza un respaldo de la base de datos afectada desde Exportar.
  3. Localiza la cadena [:en] desde Buscar para saber cuantos registros hay afectados.
  4. Ejecuta la sentencia SQL de Reemplazo para eliminar registros. (2)
  5. Verifica en phpMyAdmin, Buscar que no quedan short codes que empiecen por [:.

¡Misión cumplida, has eliminado todos los códigos cortos de qTranslate X en tu base de datos!

(2) Tendrás que ejecutarla para cadena localizada de código corto que tengas que eliminar para cada uno de los idiomas que tenias en uso y la etiqueta de cierre de qTranslate X.

Proceso más detallado

Lo primero es realizar una búsqueda para saber cuantos registros contienen códigos cortos insertados por qTranslate X en etiquetas title para hacerte una idea de la magnitud de los cambios a realizar.

Desde la pestaña Buscar de phpMyAdmin realiza una búsqueda por ejemplo del código corto que por defecto qTranslate X añade para el idioma Inglés (activo por defecto tras instalar el plugin).

Realizar búsqueda SQL en phpMyAdmin

Verás un resultado similar al siguiente:

Resultado de la búsqueda SQL

Si haces clic en Examinar en cualquiera de los resultados obtenidos de alguna de las tablas afectadas, puedes ver en detalle los registros y las etiquetas de códigos cortos que contienen.

Detalle los registros y las etiquetas de códigos cortos.

Conociendo la dimensión del problema con los códigos cortos de title que deberían haberse eliminado tras desinstalar qTranslate X, pasemos a ejecutar una sentencia SQL para deshacernos de ellos y evitar que el Título de los post siga posicionando con dicha etiqueta o código corto.

Vamos a ejecutar una sentencia SQL de Reemplazo de un valor dado, que será el código corto detectado, a eliminar, por un campo vacío para que elimine la etiqueta y en su lugar no escriba ningún carácter en cada registro afectado de las tablas.

Sintaxis:

UPDATE tabla_afectada SET meta_value = REPLACE(meta_value,'[:es]','');

Lo habitual es que qTranslate X le meta mano solo a las tablas siguientes:

wp_postmeta
wp_posts
wp_term_taxonomy

Campos afectados:

meta_value
post_content
post_excerpt
description

La sentencia SQL personalizada que utilizaré para reemplazar los códigos cortos (short codes) introducidos por qTranslate X en la etiqueta title de cada post o página en WordPress sera la siguiente:

UPDATE wp_postmeta SET meta_value = REPLACE(meta_value,'[:es]','');
UPDATE wp_posts SET post_content = REPLACE(post_content,'[:es]','');
UPDATE wp_posts SET post_excerpt = REPLACE(post_excerpt,'[:es]','');
UPDATE wp_term_taxonomy SET description = REPLACE(description,'[:es]','');

Si has ejecutado correctamente las sentencias SQL, al realizar de nuevo la búsqueda de la cadena eliminada, no deberías obtener resultados.

Busqueda sin resultados

Otras etiquetas que deberás buscar y eliminar:

[:]
[:en]

Si además tenias activados otros idiomas, por ejemplo el portugués, también deberás buscar y eliminar:

[:pb]
[:pt]

Etiquetas residuales que puedes encontrar en post o páginas si antes de usar qTranslate X en WordPress utilizaste qTranslate o mqTranslate:

De esta forma sustituyes los códigos cortos insertados por qTranslate X por «nada», eliminándolos de todos los registros de las tablas de la base de datos.

Resultados de la consulta SQL

Si revisas nuevamente en Buscar la etiqueta o código corto que eliminaste en la sentencia SQL ejecutada, este short code ya no debería aparecer en los resultados.

Como comprobación final y para asegurarte que no queda ningún código corto procedente de qTranslate X puedes realizar la búsqueda de la cadena [: y si no obtienes resultados es que ya no quedan short codes que eliminar.

Ya no quedan shortcodes que eliminar

Por seguridad exporta de nuevo una copia de la base de datos ya corregida y guardala en tu ordenador como respaldo de seguridad ¡nunca se sabe!

Conclusiones

Es posible que el procedimiento te haya resultado un poco laborioso, y se podría simplificar perfeccionando la sentencia o anidándola para ejecutar una sola, pero la idea es que realices cada una de ellas por separado, por un lado para que comprendas mejor su funcionamiento y de paso para evitar «meter la pata» en el proceso y llevarte por delante otros datos.

Además te sirve para asentar lo aprendido y a fin de cuentas solo son 4 sentencias SQL multiplicadas por el número de idiomas que tenias activos en qTranslate X más la etiqueta de cierre.

Y tu, ¿usabas qTranslate en alguna de sus versiones? (mqTranslate, qTranslate), ¿resolviste bien el problema de los códigos cortos huérfanos tras desinstalar el plugin? ..cuentamelo en los comentarios, estoy deseoso de conocer tu caso.

Entradas relacionadas

¿Qué es WordPress?

¿Qué es WordPress?

WordPress es el sistema ideal para los principiantes, para usuarios avanzados o para los que no tienen demasiados conocimientos técnicos.

26 Comentarios

  1. Dani

    Uauuuu, justo lo que estaba buscando. Voy a probarlo, espero que funcione :D.

    Un saludo y muchas gracias.

    Responder
    • gnumax

      Hola Dani,

      Gracias por comentar 🙂

      Hay que decir que qTranslate X para ser gratuito «es bueno» pero igual de bueno que es , suele ser muy intrusivo y deshacerse de el si queremos cambiar de plugin de traducciones o no tener traducciones, se acaba convirtiendo en una tarea tediosa y compleja.

      Si no usas WooCommerce y no necesitas traducir plugins o muchos widgets, qTranslate X es una buena opción, para cosas más profesionales hay que irse si o si a WPML (versión de pago 79$) es la única que merece la pena.

      Si te surgen dudas o problemas por el camino no dudes en contactarme, seguro que juntos encontramos soluciones. 😉

      Saludos

      Responder
    • Luis Méndez Alejo

      Hola Dani,

      Espero que te sea útil. Aunque ya está un poco desfasado pues qTranslate X lleva ya 1 año abandonado por su autor y me temo que no es un plugin a recomendar para multiidiomas. 😉

      Gracias por tu comentario.

      Responder
  2. Ivan

    Gracias, me ha servido de mucha ayuda. Era justo lo que buscaba para mi problema.

    Responder
    • gnumax

      Hola Ivan,

      Me alegra mucho saber que te ha sido útil. 🙂

      Ciertamente para quien ha trabajado con qTranslate X (ahora trabajo con WPML) y ha tenido que desistir de usar el plugin por presentar muchos problemas con el SEO y la forma de indexarse los artículos o post, saber eliminar «completamente» qTranslate X ayuda a limpiar una instalación y recuperar la normalidad con los Títulos, widgets y otros elementos afectados por el plugin tras su desinstalación.

      Responder
  3. David

    Hola Luis gracias por tu post. La verdad estaba pensando en eliminar el plugin ya que se presentó un error que causa que no se visualice bien el idioma en español en el HOME aparece como si estuviera desactivado, esto pasó después de solucionar un bucle de redireccionamiento que ocurría solo con el idioma en español. Si puedes dale un vistazo y me comentas si bien tiene arreglo o no http://www.9h05.com

    Responder
    • gnumax

      Hola David,

      Es muy posible que o bien sea un problema generado tras actualizar a WordPress 4.6 o fruto de la anterior importación de traducciones de WPML y cuyo resultado hayan podido ser short-codes mal generados o asociados de forma incorrecta, no lo se solo mirando desde fuera claro.

      Recordarte que la versión «estable» de qTranslate X es la 3.4.6.8 y no la 3.4.6.5

      Saludos y gracias por compartir tu caso. 🙂

      Responder
  4. Sebas

    En tu tutorial dice que el idioma por defecto es el ingles, pero en mi configuración figura por defecto el español, que es el idioma de la web. Entonces no se si tengo que desactivar ese idioma o el de ingles la verdad.

    Responder
    • gnumax

      Hola Sebas,

      Por defecto qTranslate X establece el idioma por defecto al «Inglés» cuando lo instalas aunque en el dashboard tengas por defecto «Español» o el idioma que uses.

      De hecho cuando instalas qTranslate X (no confundir con otros forks de qTranslate) aunque tu dashboard esté en español, cuando configuras el plugin, te cambia el idioma a Inglés si no configuras como Idioma primario de qTranslate X el español (o el que uses en tu caso por defecto).

      Si no te lo muestra en Inglés será porque ya configuraste el Español previamente.

      Gracias por tu comentario 🙂

      Responder
      • Sebastian Fernando Pozzi

        Te muestro una imagen de como lo veo yo en el panel de Q Translate-X

        http://i.imgur.com/PWjTmBR.png

        En este caso especifico, tengo que hacer el tutorial tal cual está escrito aquí o tengo que cambiar algo? (por lo del idioma por defecto).

        Saludos

        Responder
    • gnumax

      Hola Sebas,

      Estás tratando de eliminar definitivamente qTranslate X?

      Lo normal es que lo desinstales tal como te indico:

      1. Ve a Ajustes, Idiomas
      2. Desactiva todos los idiomas, excepto el idioma predeterminado (Inglés).
      3. En la pestaña Importar/Exportar ve a la opción Restablecer qTranslate (1).
      4. Elimina el plugin qTranslate X por completo.

      El resto del proceso es en la base de datos con phpMyAdmin, por lo que no influye cual es el idioma activo.

      Saludos 😉

      Responder
  5. Sebas

    Gracias por la paciencia. Cuando lo haga te dejaré un comentario aquí para que sepan como fue todo 😉

    Saludos!

    Responder
    • gnumax

      Hola Sebas,

      El secreto está en hacer copia de seguridad antes de proceder. Y luego afinar las búsquedas de [short codes] desde phpMyAdmin para todas las tablas y así asegurarte que no quedan restos.

      Saludos y suerte! 😉

      Responder
  6. fernando

    Buenas, muchas gracias por el post. En nuestro caso, los short codes salen en el rastro de miga. Si ponemos Services (inglés) y Servicios (español) sale esto: [:es]Servicios[:en]Services[:]>

    Si ponemos Servicios en ambos casos, no aparecen los short codes.

    Y no encontramos cómo solucionarlo.

    Solo nos ocurre en una página.

    Muchas gracias

    Un saludo
    Fernando

    Responder
    • Luis Méndez Alejo

      Hola Fernando,

      Gracias por comentar 🙂

      ¿Has probado lo siguiente?:

      > Settings – Languages – Integration – Custom Fields in class put fusion-breadcrumbs

      Asegúrate de estar utilizando la versión estable de WordPress y de qTranslate X

      Saludos

      Responder
  7. Dani

    Hola Luis, muchas gracias por compartir el procedimiento 🙂

    No si es el lugar pero aprovecho para preguntar si conoces alguna alternativa BBB al WPML.

    Cuando lo he usado, sobretodo junto con Woocommerce, me ha parecido demasiado enfarragoso y complicado de ajustar todo.

    Leo por ahi que una alternativa seria el Multilingual Press, eso si, creando un site por cada idioma, con las ventajas y desventajas que implica.

    Que te parece esta alternativa, para una web medianamente complicada?
    Otras opciones?

    Gracias y un saludo!

    Responder
    • Luis Méndez Alejo

      Hola Dani,

      Gracias por tu comentario 🙂

      Creo que MultilingualPress es una alternativa «BBB» 😛 …que también tiene una versión PRO, para los que necesitan más.

      Pero debes tener presente que MP crea un sitio web independiente para cada idioma que quieras ofrecer a tus visitantes.

      Si decides dar el paso te recomiendo este podcast donde te cuentan los Joan’s el cómo migrar de WPML a Multilingual Press https://wpradio.es/podcast/24-migrar-wpml-multilingual-press/

      Saludos

      Responder
  8. JoAn Guevara

    Gran aporte, justo estaba buscando información. Voy a probar a ver que tal. Saludos y gracias.

    Responder
  9. Diego

    Hola, muy bueno el post, me ayudo a salir de mi depresión en parte, jaja

    Quiero iniciar el proceso de desinstalar qtranslate x, según veo explicas muy bien el proceso pero yo no entiendo mucho pero bueno lo voy a intentar siguiendo tus consejos para hacerlo.
    Pues bien, te paso una duda de inexperto, donde es que tengo que ejecutar la sentencia SQL???, en que lugar??
    saludos!!

    Responder
  10. Luis Méndez Alejo

    Las sentencias SQL se ejecutan desde phpMyAdmin, herramienta que en teoría debes tener disponible en tu panel de hosting o XAMPP/LAMPP (o lo que utilices) 😉

    Saludos

    Responder
  11. Lolo Marchal

    Perdón, le di a enviar sin querer en el comentario de antes. Decía que:
    Nos hemos encontrado los mismos problemas que tú en un wordpress + woocommece. Al eliminar qtranslate han desaparecido todas las variaciones de nuestros productos. Si lo volvemos a activar, tampoco vuelven a aparecer.

    Por lo que veo no hay mucha info al respecto. La solución pasa por duplicar todos los productos, entonces sí que aparecen sus variaciones pero sin su precio y cambiar el slug del producto antiguo por el del nuevo.

    ¿Sabéis de alguna solución? En los foros no ayudan mucho.

    Responder
  12. Javier

    Hola, gracias por este trabajo.
    Solo necesito saber si previamente he de eliminar todas las traducciones página a página. De lo contrario, todo ese material dónde va a parar?
    Agradecido de antemano.

    Responder
    • Luis Méndez Alejo

      Hola Javier,

      Tienes 2 opciones, o eliminas los idiomas que ya no van a formar parte de la web (se supone que si eliminas qTranslate X es porque la web ya no va a ser multiidioma) y luego limpias en la base de datos los códigos cortos que ha dejado este plugin (lock-in) o directamente aplicas lo comentado en el artículo y luego en las entradas traducidas encontrarás en el mismo post y separado por bloques, los textos correspondientes a cada idioma que ese post tenía cuando se gestionaba con qTranslate X. Nota: Haz un backup antes de aplicar nada 😉

      Responder
  13. MAriano

    Solucionado problema, de mucha ayuda esto, gracias! 🙂

    Responder
  14. Alex

    Hola!!

    Primero de todo muchas gracias por el aporte. Mi duda es algo diferente y no se si aquí sería el lugar, pero se me han acabado las ideas. Había pensado en quitar el qTranslate por qué al tenerlo activo no me permite usar las imágenes ni subir imágenes nuevas al hacer una entrada o subir un producto al woocomerce. SI existiera una solución no lo eliminaría, pero sino procedería a hacerlo e instalar otro.

    Muchas gracias

    Responder
  15. muebles

    Hola Luis
    Necesito eliminar un shortcode de muchísimos articulo y podría pegarme días si lo hago manualmente. He descubierto esta lineal de código que me ayudaría a eliminarlos todos de un plumazo pero no se donde ejecutarlo dentro de la base de datos. Cuando lo intento en wp_post o en la carpeta del wp me devuelve un mensaje diciendo que no ha encontrado las filas.

    UPDATE wp_post SET post_content = replace(post_content, ‘[shortcode]’, » ) ;

    Donde exactamente tengo que ejecutarlo una vez dentro de la base de datos?

    Responder

Deja un comentario