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:
- Vamos al phpMyAdmin de la base de datos de WP y pulsamos sobre la pestaña SQL
- En el cuadro de texto que nos aparece escribimos esto:
UPDATE wp_posts SET comment_status = 'closed', ping_status = 'closed' WHERE comment_status = 'open'; - ¡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í
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 …
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.
@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.
Vaya, muchas gracias por este apaño. Me ha sido de mucha utilidad.
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.
Hola, ¿se puede hacer algo para quitar la leyenda “Los comentarios están cerrados” que aparece después de poner el código? Gracias.
Yo de nuevo. Para que no se molesten en responderme, encontré la manera, gracias igual.
@Alejandro y cómo quitas el Mensaje?
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!
Excelente, de inmediato funcionó, muchas gracias por el aporte
Parece que sólo funciona para las entradas ya creadas, pero cuando creo nuevas entradas me reaparece el formulario de comentarios….
@Jack Bauer: Para eso están las Opciones – Discusión.
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.
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..
Wuao muchisiiiisimas gracias me ha funcionado perfecta mente saludos desde republica dominicana
Muchas gracias! :) me funciono a la perfección!
lastima que tengo mi blog alojado gratuitamente en WordPress
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
Muchas gracias, tu codigo me ha sido de gran ayuda tio :)
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’;
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.