Comandos SQL la mar de útiles para gestionar WordPress

WordPress almacena un montón de cosas en su base de datos. Mediante comandos SQL, podrás llevar a cabo tareas que te llevarían un montón de tiempo si las hicieses de otro modo. En este artículo he compilado unos cuantos comandos SQL con los que podrás gestionar comentarios, gestionar usuarios, limpiar tu base de datos y mucho, mucho más…

SQL

Borrar todos los comentarios que provienen de una URL específica

El spam definitivamente es un problema serio en casi todos los blogs de WordPress. Afortunadamente, SQL nos puede ayudar en este asunto.

DELETE from wp_comments WHERE comment_author_url LIKE "%url-del-spammer%";

Eliminar todos los trackbacks

Mucha gente, yo incluido, piensa que los trackbacks no sirven para absolutamente nada. Puedes limpiar la base de datos de tu sitio web desarrollado con WordPress de esos inútiles trackbacks mediante esta query.

DELETE FROM wp_comments WHERE comment_type="trackback";

Cerrar todos los trackbacks, en todos los posts, de una vez

Incluso mejor que eliminarlos, puede ser la idea de cerrar todos los trackbacks de una vez mediante esta query.

UPDATE wp_posts SET ping_status = 'closed';

Eliminar 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 10.000 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. Este comando SQL lo suelo ejecutar 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

Uno de los principales problemas de los shortcodes es que si provienen de un plugin y desinstalas dicho plugin, el shortcode dejará de funcionar y se mostrará en la web. En lugar de editar cada uno de tus posts, ejecuta esta simple query. Reemplaza [shortcode] por el shortcode que ya no utilices y quieras eliminar del contenido.

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

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 concreto, es mejor que lo añadas en todos tus posts en lugar de tener que editarlos cada vez que creas uno. ¡Aquí tienes el comando SQL 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 están ya algo obsoletos? Aquí tienes una sencilla forma de eliminarlos. Si quieres obtener buenos resultados, 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 modificar 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 mediante SQL

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

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 llena de tags que ya no utilizas, puedes considerar limpiarla con el siguiente comando 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');

Y hasta aquí nuestro artículo sobre cómo añadir el snapcódigo de Snapchat en WordPress. Espero que te haya gustado y, si te ha resultado útil, no dudes en compartirlo en redes sociales. ¡Nos leemos!

 

Scroll al inicio