Cómo utilizar SQL para gestionar los comentarios de WordPress

WordPress almacena un montón de cosas en su base de datos. Utilizando las consultas SQL, puedes realizar tareas fácilmente que de lo contrario tardarías mucho en llevarlas a cabo. En este artículo, he compilado una serie de consultas SQL para gestionar comentarios y usuarios, editar en masa comentarios, limpiar la base de datos, y mucho más...

Borrar todos los comentarios de una URL específica

El spam es, definitivamente, un problema en los blogs desarrollados con WordPress. Por suerte, aquí te damos un query SQL que te puede ayudar:

DELETE from wp_comments WHERE comment_author_url LIKE "%spamurl%" ;

Borrar todos los trackbacks

Mucha gente, incluido yo, piensa que los trackbacks son algo innecesario. Limpia la base de datos de tu blog con esta simpática query.

DELETE FROM wp_comments WHERE comment_type="trackback";

Cierra los trackbacks en todos tus posts a la vez

Mejor que eliminarlos, puedes cerrar todos los trackbacks, es decir, no permitir que se almacen en tu base de datos de WordPress, con esta query.

UPDATE wp_posts SET ping_status = 'closed';

Elimina en masa todos los comentarios no aprobados

¿Te da demasiada pereza ir revisando todos los comentarios sin aprobar que tienes en tu sitio desarrollado con WordPress? Esta es una manera rápida de eliminarlos todos de una vez por todas.

DELETE from wp_comments WHERE comment_approved = '0';

Eliminar todos los comentarios marcados como spam

¿Tienes 5400 comentarios marcados como spam y no quieres ir página por página eliminando uno por uno cada uno de ellos? Esta query es para ti.

DELETE FROM wp_comments WHERE wp_comments.comment_approved = 'spam';

Eliminar todas las revisiones de los posts y sus datos asociados

Haz tu base de datos más ligera eliminando las revisiones de los posts y todos sus datos asociados. Una query que ejecuto en mis blogs cada 3 o 4 meses.

DELETE a,b,c FROM wp_posts a LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id) WHERE a.post_type = 'revision';

Eliminar shortcodes que ya no utilizas en el contenido de tus posts

Los shortcodes molan, pero en cierto momento de la vida de tu WordPress debes eliminar aquellos que ya no utilizas, ya sea por plugins que has desinstalado, porque has cambiado de theme... En lugar de editar cada uno de tus posts, ejecuta esta simple query. Reemplaza [tweet] por el shortcode que ya no utilices y quieras eliminar del contenido.

UPDATE wp_post SET post_content = replace(post_content, '[tweet]', '' ) ;

Reemplazar una palabra por otra en el contenido de un post

Esto puede ser muy útil para actualizar un enlace, por ejemplo.

UPDATE wp_post SET post_content = replace(post_content, 'palabra_antigua', 'palabra_nueva' ) ;

Añadir un campo personalizado en todos los posts

Si siempre utilizas un campo personalizado específico, es mejor que lo añadas en todos tus posts en lugar de editar X cantidad de tus posts. ¡Aquí tienes la query para ello!

INSERT INTO wp_postmeta (post_id, meta_key, meta_value)
SELECT ID AS post_id, 'MyCustomField'
AS meta_key 'myvalue AS meta_value
FROM wp_posts WHERE ID NOT IN
(SELECT post_id FROM wp_postmeta WHERE meta_key = 'MyCustomField')
`` AND post_type = 'post';

Eliminar posts muy antiguos

¿Tus posts son muy anticuados? Aquí tienes una sencilla forma de eliminarlos. Para obtener resultados satisfactorios, debes utilizar redirecciones 301 para redirigir las publicaciones eliminadas a tu página principal, o a versiones actualizadas de dichos artículos.

DELETE FROM wp_posts WHERE post_date < '2010-01-01 00:00:00' AND post_status = 'publish'

Obtener un listado de los emails de todos los usuarios que han comentado en tu WordPress

En realidad no deberías utilizar el email de los usuarios que han comentado en tu WordPress para nada (salvo con su consentimiento), pero aquí te presentamos una manera de obtener un listado de todos los emails de los usuarios que han comentado alguna vez en tu WordPress, los cuales están almacenados en la tabla wp_comments. Es importante el uso de DISTINCT para asegurarnos que la consulta no traiga valores duplicados.

SELECT DISTINCT comment_author_email FROM wp_comments;

Asignar posts a un autor nuevo

Si por alguna razón quieres transferir posts de un usuario a otro, esta query puede resultarte muy útil. Debes actualizarla con los ids tanto del nuevo autor como del antiguo autor antes de ejecutarla.

UPDATE wp_posts SET post_author = 'new-author-id' WHERE post_author = 'old-author-id';

Modificar la contraseña de un usuario

Un método rápido de actualizar la contraseña de un usuario. No olvides reemplazar username por el nombre de usuario del usuario el cual quieres cambiar su contraseña.

UPDATE wp_users SET user_pass = MD5( 'new_password' ) WHERE user_login = 'username';

Desactiva todos los plugins en masa

En caso de que algo vaya mal en tu sitio web desarrollado con WordPress, siempre es buena idea desactivar todos los plugins, para detectar así si son parte del problema. Aquí tienes una query con la que podrás desactivar todos los plugins que tengas actualmente instalados.

UPDATE wp_options SET option_value = '' WHERE option_name = 'active_plugins';

Eliminar tags que no utilices

Como probablemente tengas la base de datos de tu WordPress lleno de tags que ya no utilizas, puedes considerar limpiarla con la siguiente query SQL.

DELETE FROM wp_terms wt
INNER JOIN wp_term_taxonomy wtt ON wt.term_id = wtt.term_id WHERE wtt.taxonomy = 'post_tag' AND wtt.count = 0;

Cambiar todas tus urls/nombre de dominio

WordPress almacena todas las rutas absolutas dentro de la base de datos. Lo que significa que si cambias el dominio de tu sitio web, tendrás que modificar todas y cada una de URLs de tu WordPress. Utilizando SQL esto se puede llevar a cabo de manera muy simple. Solo edita las tres querys de más abajo con tu viejo nombre de dominio, y con el nuevo nombre.

UPDATE wp_options SET option_value = replace(option_value, 'http://www.viejaweb.com', 'http://www.nuevaweb.com') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = replace(guid, 'http://www.viejaweb.com','http://www.nuevaweb.com');
UPDATE wp_posts SET post_content = replace(post_content, 'http://www.viejaweb.com', 'http://www.nuevaweb.com');

Fuente: catswhocode.com

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP