Deshabilitar los comentarios en todas las entradas

Esta noche, realizando el mantenimiento de un sitio que administro, he tenido que desactivar los comentarios y los pings de todas las entradas existentes. En principio pensaba que desactivándolo desde las opciones se propagaba a todas las entradas, pero esto no es así puesto que esa configuración se guarda en cada entrada y no es un ajuste global. Me he puesto a investigar y en el blog de Vicente Navarro he hallado la solución al problema:

  1. Vamos al phpMyAdmin de la base de datos de WP y pulsamos sobre la pestaña SQL
  2. En el cuadro de texto que nos aparece escribimos esto: UPDATE wp_posts SET comment_status = 'closed', ping_status = 'closed' WHERE comment_status = 'open';
  3. ¡Listo! Ya tenemos deshabilitados los comentarios y los pings en todas nuestras entradas.

Cuando quieras volver a habilitarlo tendrás que escribir esto:
UPDATE wp_posts SET comment_status = 'open', ping_status ='open' WHERE comment_status = 'closed';
Para aquel que no entienda el código, os lo explico:

  • UPDATE wp_posts: Le estamos diciendo al phpMyAdmin que queremos modificar la tabla wp_post (esta tabla es donde WP guarda la configuración de los comentarios).
  • SET comment_status = ‘closed’, ping_status = ‘closed’: Con esto ponemos en los parametros comment_status (los comentarios) y ping_status (los pings) el valor closed (cerrado).
  • WHERE comment_status = ‘open’: Con esto le decimos solamente se modifiquen aquellos paremetros que tengan como valor open (abierto).

Ahora que ya sabemos como funciona podemos jugar con el código. Por ejemplo, si solamente queremos deshabilitar los pings sería esto: UPDATE wp_posts SET ping_status = 'closed' WHERE ping_status = 'open';

Si solo queremos deshabilitar los comentarios y dejar los pings activos: UPDATE wp_posts SET comment_status = 'closed' WHERE comment_status = 'open';

O si queremos hacer todo lo contrario:

Activar los pings:
UPDATE wp_posts SET ping_status ='open' WHERE ping_status = 'closed';
Activar los comentarios:
UPDATE wp_posts SET comment_status = 'open' WHERE comment_status = 'closed';

Vía: Lo hice y lo entendí

Comentarios
  1. Hola !!!! espero ser el commet #400 para mi premio … jaja … no es cierto XD…Felicidades por los comets, creo yo que son lo que la de vida a un blog …

    Escrito el04/03/2009
  2. No se vale comentar sólo eso, hay que aportar algo a cada entrada :).
    Es una interesante opción la de éste post, pero creo que no sirve para todos, hay veces que interesa mantener posts concretos sin admitir comentarios, y el filtro no los detectaría. Se podría hacer, pero complica bastante el código y la dificultad.

    Escrito el04/03/2009
  3. @Javi eso tiene fácil arreglo…

    Por cierto, antes que nada: esa búsqueda en algunos casos hay que refinarla para incorporar el prefijo de la tabla, que si no no sabe encontrar los registros.

    Ahora pongo el ejemplo con mi arreglo:

    UPDATE posts p SET comment_status = 'pinacolada', ping_status = 'pinacolada' WHERE comment_status = 'open';

    ¿Ein? ¡Pero si “pinacolada” no es un valor común! Exactamente ése es el propósito… Como no es “open” no se mostrará. Y como tampoco es “closed” se queda indeterminado, sin poner el formulario de comentario.

    ¿A que mola la tontería de arreglo? :D

    Lo bueno es que – una vez terminada la operación – se puede conmutar otra vez, buscando y sustituyendo “pinacolada” por “closed” ó “open”, según se quiera.

    Escrito el04/03/2009
  4. Jon

    Vaya, muchas gracias por este apaño. Me ha sido de mucha utilidad.

    Escrito el29/11/2009
  5. MAN

    En micaso solo tuve que modificar el nombre: UPDATE wp_posts SET ping_ por
    UPDATE XXX_posts SET ping_
    Donde XXX es un prefijo que aparece en el listado de la estructúra de la base de datos.

    Escrito el05/03/2010
  6. Alejandro

    Hola, ¿se puede hacer algo para quitar la leyenda “Los comentarios están cerrados” que aparece después de poner el código? Gracias.

    Escrito el12/03/2010
  7. Alejandro

    Yo de nuevo. Para que no se molesten en responderme, encontré la manera, gracias igual.

    Escrito el12/03/2010
  8. MAN

    @Alejandro y cómo quitas el Mensaje?

    Escrito el12/03/2010
  9. Alejandro

    MAN: en mi caso, fui al editor y de ahí a “Comentarios (comments.php”). En la hoja de códigos busqué la leyenda que me molestaba (“Los comentarios están cerrados”.) y directamente la borré. El problema es que en la hoja esa leyenda me aparecía en inglés y por eso no la encontraba, hasta que me di cuenta. Espero haber sido claro, pero no soy un experto en esto y ni siquiera tengo el lenguaje técnico como para guiarte mejor. Suerte!

    Escrito el15/03/2010
  10. Sbcdte1

    Excelente, de inmediato funcionó, muchas gracias por el aporte

    Escrito el06/04/2010
  11. Jack Bauer

    Parece que sólo funciona para las entradas ya creadas, pero cuando creo nuevas entradas me reaparece el formulario de comentarios….

    Escrito el19/08/2010
  12. quiero quitar la frase “los comentarios están cerrados”, ví la explicación de Alejandro pero no sé desde dónde debo hacerlo (¿hace falta que aclare que soy aspirante a novata?) gracias.

    Escrito el20/01/2011
  13. Serch

    Buenas, me ha funcionado perfectamente y agradezco tu aportación, pero querría desactivar la opción de poder dejar comentario también en las paginas.. no encuentro ninguna tabla que se llame page o algo similar para desactivarlo..

    Escrito el06/05/2011
  14. Wuao muchisiiiisimas gracias me ha funcionado perfecta mente saludos desde republica dominicana

    Escrito el21/09/2011
  15. Muchas gracias! :) me funciono a la perfección!

    Escrito el13/10/2011
  16. lastima que tengo mi blog alojado gratuitamente en WordPress

    Escrito el06/12/2011
  17. alvarobueno

    Es absurdo que se tenga que recurrir a estos “trapicheos” en el código. Se supone que wordpres es un cms en condiciones, ¿por que no tiene una opción que desactive completamente los comentarios en una todas o las entradas que uno quiera cuando uno quiera?

    Que absurdo me parece todo esto.

    Un saludo

    Escrito el18/12/2011
  18. Muchas gracias, tu codigo me ha sido de gran ayuda tio :)

    Escrito el19/12/2011
  19. Gracias por tu ayuda!!! la verdad es que es una trite guasa que WordPress no tenga esta opción en su panel, un -1 para él y un +1 para Joomla [/ironicmode] ;)

    Añado que si deseamos que no se vuelvan a activar los comentarios en entradas nuevas, basta con hacer:
    ALTER TABLE `wp_posts` CHANGE `comment_status` `comment_status` VARCHAR( 20 ) DEFAULT ‘closed’;

    Si queremos volver a ponerlo:
    ALTER TABLE `wp_posts` CHANGE `comment_status` `comment_status` VARCHAR( 20 ) DEFAULT ‘open’;

    Escrito el03/02/2012
  20. Sammy

    Opino como alvarobueno, WordPress ya está lo suficientemente avanzado como para poder incorporar una opción en la configuración para manejar los comentarios por el administrador.

    Escrito el01/04/2012

DEJA TU COMENTARIO