WordPress: Cerrar comentarios en post attachment

Cada vez que subes una imagen (u otro tipo de archivo) a wordpress, este te crea un nuevo post que, aunque normalmente no será visible, tiene su propia URL y por eso es accesible para los visitantes del blog un poco hábiles o, más frecuentemente, para los spammers.

De un tiempo a esta parte estoy recibiendo mucho spam en este tipo de entradas para imágenes u otros attachments y la solución más rápida que se me ha ocurrido es directamente cerrar los comentarios en esos “pseudopost” de imágenes, esto no afectará a los comentarios de los verdaderos post, los que contienen el texto y esa imagen que has subido.

El query que tendrás que hacer desde el phpmyadmin es el siguiente

[sql]
UPDATE`wp_posts`
SET`comment_status` = ‘closed’
WHERE `post_type` = ‘attachment’
[/sql]

Recuerda hacer una copia de seguridad de la tabla que vas a modificar antes de hacer ningún query contra la misma.
Otra opción quizá más elegante es: crear, en el mismo sitio donde tienes el single.php de tu theme, otro archivo, copia del single, que se llame attachment.php y en él borres el formulario de comentarios. Una vez hecho esto ese será el archivo php que se cargará para mostrar la imagen (por la jerarquía de themes de wordpress) y por tanto puedes hacer en él las modificaciones que consideres necesarias, por ejemplo, modificar el formulario para eliminar los campos de introducción de comentarios.

Si optas por la opción de cerrar los comentarios de los post de tipo attachment mediante el query sql recuerda que de vez en cuando lo tendrás que volver a ejecutar para las nuevas imágenes que subas.

Y hasta aquí el briconsejo sólo para amigos del wordpress de hoy 😉

Anuncios

5 comentarios en “WordPress: Cerrar comentarios en post attachment

  1. Pingback: Bitacoras.com
  2. Gracias por el consejo, voy a ponerlo en practica, se me llenaron comentarios en una imagen, ahora voy a cerrarlo.
    No se si podrias indicarme como puedo hacer para que esos comentarios de la imagen se pasen al post donde esta la imagen.

    saludos..

    • A bote pronto se me ocurre que busques el identificador del post original en la tabla wp_post (el post donde quieras dejar los comentarios) y actualizar, en la tabla wp-comments todos las filas del post del que los quieres quitar con el identificador del post que has cogido de wp_post. No sé si me he explicado bien, si no es así dímelo y cuando tengo un rato y las tablas delante te preparo el query.

      • Si, es justo lo que he hecho, busque el id del post y los comentarios respectivos y los cambie de numero id simplemente y ya estuvo, otra cosa mas que hay que hacer es cambiar el contador de comentarios del post (por si alguien opta por esta opcion), por que en el post te saldra “total comentarios x” pero en realidad seran mas.
        PD: en wordpress la ultima version, no se si sera solo en mi caso pero en Msyql las tablas ya no son directamente wp_post, wp_comments, sino ahora llevan la palabra blog, ejemplo: wp_blogpost, wp_blogcomments, etc.. saludos.

Los comentarios están cerrados.