Cómo mover comentarios de una entrada a otra en WordPress

Mover comentarios de una entrada a otra no es algo que haya que hacer muy a menudo, pero hay casos en los que sí que tiene mucho sentido hacerlo. Por ejemplo, cuando un usuario publica un comentario en una entrada equivocada, o donde no se está hablando del tema que él propone. También puede ser útil cuando queremos mover todo el contenido de una entrada a otra nueva, junto con los comentarios que la acompañan.

Foros muy populares como phpBB permiten este tipo de acciones, pero WordPress (al menos hasta la versión 3.0.1) no nos deja hacer estos cambios desde el panel de control, así que no nos queda más remedio que ir directamente a la base de datos y realizar los cambios desde ahí, a través de phpMyAdmin y algunas sentencias SQL.

Otra manera de conseguir algo parecido, aunque mucho menos elegante, sería reescribir nosotros mismos los comentarios que queremos cambiar y borrar después los originales. Pero si lo hacemos así, además de llevar más trabajo, perderemos algunos datos como la IP del autor, que no se puede editar desde el panel de administración de WordPress.

Estos son los pasos que tendremos que dar cada vez que queramos mover comentarios en una web gestionada a través de WordPress:

  1. Como siempre, lo primero será hacer una copia de seguridad de la base de datos
  2. Reunir y anotar algunos detalles que necesitaremos en los próximos pasos (entre paréntesis el identificador para saber dónde hay que introducir el dato en el código SQL de los puntos 3 y 4):
    • ID de la entrada original, donde están los comentarios que queremos mover (ID1)
    • ID de la nueva entrada, donde estarán los comentarios después de moverlos (ID2)
    • Número de comentarios en la entrada original, después de moverlos (XX)
    • Número de comentarios en la entrada nueva, contando los que hemos movido (YY)
    • Email del autor del comentario, en caso de que queramos mover solamente los comentarios de un autor determinado (EMAIL-AUTOR)
  3. En phpMyAdmin (o cualquier gestor donde podamos ejecutar sentencias SQL sobre la base de datos que usa WordPress), vamos a la pestaña “SQL” y pegamos estas consultas, según lo que queramos hacer:

    Si queremos mover todos los comentarios de una entrada a otra:

    UPDATE wp_comments SET comment_post_ID=ID2 WHERE comment_post_ID=ID1;

    Si queremos mover solo un comentario concreto (necesitaremos el ID de ese comentario):

    UPDATE wp_comments SET comment_post_ID=ID2 WHERE comment_ID=ID del comentario;

    Si queremos mover todos los comentarios de un autor concreto:

    UPDATE wp_comments SET comment_post_ID=ID2 WHERE comment_post_ID=ID1 
    AND comment_author_email='EMAIL-AUTOR';
  4. Actualizar los contadores de comentarios de ambas entradas:
    UPDATE wp_posts SET comment_count=XX WHERE ID=ID1;
    UPDATE wp_posts SET comment_count=YY WHERE ID=ID2;
    

Hay que tener en cuenta un par de cosas importantes:

  • Es necesario cambiar “ID1”, “ID2”, “XX”, “YY” y “EMAIL-AUTOR” por los valores que correspondan en cada caso.
  • El prefijo de las tablas que usa WordPress puede ser diferente. Por defecto será “wp_”, pero si lo cambiamos al instalar WordPress, habrá que cambiarlo aquí también.
  • Los plugins que incorporen algún sistema de cache para los comentarios, por ejemplo, Recent Comments, no reflejarán los cambios inmediatamente. Una solución fácil puede ser simplemente visitar las opciones del plugin y actualizarlas sin hacer ningún cambio. Esto forzará al plugin a volver a leer los comentarios otra vez desde la base de datos.

Seguro que existe más de un plugin que permite mover comentarios de manera mucho más fácil y cómoda, pero como es algo que en principio solo se hace muy de vez en cuando, no veo la necesidad de sobrecargar el sistema con más extensiones. Sí será una solución perfecta para quien no tenga acceso a la base de datos o no esté familiarizado con phpMyAdmin y las sentencias SQL.

ACTUALIZACIÓN: Algunos plugins para mover comentarios:

Comentarios

  1. illi.pro

    Hey, muchas gracias por el post, justo lo que necesitaba y me sirvió a la perfección.

    Opino al igual que tú, no es necesario un plugin para algo tan simple que se puede realizar con una pequeña consulta al MySQL.

    Muchas gracias.

  2. Daniel

    Me alegro, porque explicado así, con todos los pasos y detalles, parece mucho más complicado de lo que en realidad es.

  3. Andrea

    Hola! Yo tendría que mover los comentarios pero no de una entrada a otra sino de una página a una entrada. Cómo hacerlo? Se puede sin tener conocimientos de PHP?
    Gracias!

Y tú qué opinas?

Las URLs se convertirán en enlaces automáticamente. Tu dirección de email no se publicará ni se utilizará para enviar ningún tipo de información. Los mensajes que no aporten nada al tema que se trata en esta entrada se borrarán. Las imágenes que aparecen al lado de cada autor utilizan el servicio de Gravatar. Recuerda que puedes usar etiquetas HTML como <a href>, <code>, <em> o <strong> en los comentarios.

(necesario)

(opcional)