Administrar comentarios de un WordPress con comandos de MySQL

Hace algún tiempo atrás les mostré cómo administrar sitios WordPress con comandos, era a través de un script perl. En este caso les mostraré específicamente cómo administrar comentarios de un WordPress mediante consultas SQL, o sea, mediante comandos en la consola de MySQL.

Lo primero a tener en cuenta es que deben tener acceso a la terminal o consola de MySQL, supongamos que accedemos al servidor por SSH y dentro de él escribimos:

mysql -u root -p
Esto suponiendo que nuestro usuario de MySQL sea root, si es otro simplemente cambien root por el usuario suyo

Una vez escrito esto y presionado Enter les pedirá el password de ese usuario de MySQL, lo escriben, presionan de nuevo Enter y listo, ya habrán accedido:

mysql-terminal-acceso

Una vez dentro del shell de MySQL debemos indicar qué base de datos vamos a usar, pueden ver las bases de datos disponibles con:

show databases;
En MySQL es sumamente importante que terminen siempre las instrucciones con punto y coma ;

Esto les mostrará como dije las bases de datos disponibles, supongamos que la deseada se llama sitiowordpress, pasemos a usarla:

use sitiowordpress;

Revisemos cómo se llaman las tablas con:

show tables;

Esto nos dirá los nombres de las tablas, sumamente importante pues debemos ver cuál es exactamente el nombre de la tabla relacionada con los comentarios: comments

Generalmente se llama wp_comments o de forma similar, lo importante es que siempre termina en: comments

Eliminar comentarios SPAM

Con esta línea se borrarán todos los comentarios que están marcados como SPAM:

DELETE from wp_comments WHERE comment_approved = 'spam';
Recuerden, si les dice que la tabla wp_comments no existe entonces deben cambiar wp_comments por el nombre exacto de la tabla de comentarios, nombre que más arriba después del show tables; les apareció

Eliminar todos los comentarios pendientes de moderación

DELETE FROM wp_comments WHERE comment_approved = '0';

Reemplazar texto en todos los comentarios

Supongamos que deseamos buscar en todos los comentarios la palabra «politicos» y reemplazarla por «corruptos», sería:

UPDATE wp_comments SET `comment_content` = REPLACE (`comment_content`, 'politicos', 'corruptos');

Eliminar comentarios según URL del sitio del autor

Supongamos que por determinado motivo deseamos eliminar todos los comentarios de cualquier usuario que al comentar, haya especificado en los datos del formulario de comentar (nombre, sitio y correo) que su sitio era http://taringa.com (por citar un ejemplo), sería entonces así:

DELETE from wp_comments WHERE comment_author_url LIKE 'http://taringa.com';

Cerrar comentarios en artículos antiguos

Conozco de personas que desean cerrar los comentarios en posts viejos de sus sitios, entonces deben editar los posts de uno en uno para así desactivar la opción de «comentarios habilitados» en cada uno, esta línea les solucionará la vida:

UPDATE wp_posts SET comment_status = 'closed' WHERE post_date < '2010-02-10' AND post_status = 'publish';

Como pueden ver, en la mitad de la línea está una fecha, 2010-02-10, esto significa que todos los posts que estén publicados y tengan una fecha de publicación inferior al 10 de febrero de 2010 (o sea, se hayan publicado antes) cerrarán los comentarios, ya nadie podrá comentar en ellos.

Cerrar los comentarios en todos los artículos

En caso de que no deseen cerrar los comentarios solo en algunos posts sino en todos, esta línea les servirá:

UPDATE wp_posts SET comment_status = 'closed', ping_status = 'closed' WHERE comment_status = 'open';

Si desean revertir esto, cambien closed por open y viceversa, y listo vuelvan a ejecutar la línea con los cambios.

Borrar comentarios hechos en determinado rango de tiempo

Supongamos que deseamos borrar todos los comentarios que se hayan hecho el día 1ro de abril de 2014, entre 4:15 de la tarde y 10:40 de la noche, la línea sería:

DELETE FROM wp_comments WHERE comment_date > '2014-04-01 16:15:00' AND comment_date <= '2014-04-01 22:40:00';

Como pueden ver la hora es en formato de 24 horas, o sea, hora militar.

Fin!

Bueno nada más que agregar, sé que a más de uno le resultará interesante esto.

Saludos


Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   @Jlcmux dijo

    Creo que acabas de hackear a Desdelinux sin darte cuenta jajaj

  2.   diazepan dijo

    Qué le pasa a la pinta de este artículo? Esto parece taringa.

    1.    usemoslinux dijo

      listo. arreglado.
      este alejandro…

  3.   usemoslinux dijo

    jaja! dejá de hacer cagadas alejandro!
    cuando te agarre….

  4.   Yeretik dijo

    Y no tendría más sentido un tutorial de MySQL ?? O, si lo que quieren es «Administrar comentarios de wordpress desde la consola» al menos tener el decoro de presentar un shell script que automatice todas estas consultas.

    Igual, acotándome al post mi aporte (vaya novedad!)

    Para cargarse la base de datos de WordPress y hacerlo tierra:
    DROP DATABASE ;

    Espero les sea de utilidad… 😉

    1.    KZKG^Gaara dijo

      Sería más extenso un tutorial de MySQL, querys y demás… pero, para aquellos que solo buscan hacer determinados cambios en los comentarios de un WordPress, les sería poco práctico, no entenderían mucho.

      Referente al asunto de tener o no decoro, venga Willians, tú primero aporta algo y luego, luego critica el aporte de otros ok 😉

      ¿dónde está tu sitio/blog que le es de utilidad a la comunidad? Pregunto porque, hay que tener decoro y dignidad no? ^_^

      1.    Rafael Castro dijo

        La mejor parte del post…. politicos – corruptos

        +1