info@creativaonline.es

Limpiar base de datos WordPress con consultas SQL

Después de años de uso, tu base de datos de WordPress puede contener caracteres extraños, llenarse con datos que ya no necesita, etc. En este artículo, aprenderá sobre consultas SQL para limpiar su base de datos de WordPress.

Mostrar tabla de contenido

Dos cosas a tener en cuenta: primero, cualquiera de estas consultas debe ir precedida de una copia de seguridad de toda su base de datos. En segundo lugar, no olvide reemplazar el prefijo de la wp_tabla por el prefijo utilizado en la instalación de su sitio web de WordPress, de lo contrario, las consultas no funcionarán.

Cómo ejecutar consultas SQL en tu base de datos de WordPress

Antes de entrar en los ejemplos, tomemos un momento para ver cómo es posible ejecutar consultas SQL en un sitio web de WordPress. Tienes tres posibilidades:

  • Uso de SSH : si tu alojamiento de WordPress permite conexiones SSH, simplemente puede conectarse a su servidor y ejecutar las consultas directamente en tu base de datos MySQL.
  • Uso de PHPMyAdmin : la mayoría de los paquetes de alojamiento de WordPress vienen con cPanel y PHPMyAdmin, una interfaz web que te permite ejecutar consultas SQL.
  • Uso de un plugin de WordPress : Database My Admin es un plugin de WordPress que le permite ejecutar cualquier consulta SQL en su base de datos de WordPress desde su panel de WP. Si no deseas ejecutar consultas manualmente y solo necesita optimizar su base de datos, Advanced Database Cleaner podría ser un plugin a considerar.

Limpia tu base de datos de WordPress de caracteres extraños

Los problemas de codificación pueden ser realmente dolorosos. En lugar de actualizar manualmente todas sus publicaciones, aquí hay una consulta que puedes ejecutar para limpiar tu base de datos de caracteres extraños. Tu sitio de WordPress será mucho más agradable de leer para sus visitantes.

UPDATE wp_posts SET post_content = REPLACE(post_content, '“', '“');
UPDATE wp_posts SET post_content = REPLACE(post_content, '”', '”');
UPDATE wp_posts SET post_content = REPLACE(post_content, '’', '’');
UPDATE wp_posts SET post_content = REPLACE(post_content, '‘', '‘');
UPDATE wp_posts SET post_content = REPLACE(post_content, '—', '–');
UPDATE wp_posts SET post_content = REPLACE(post_content, '–', '—');
UPDATE wp_posts SET post_content = REPLACE(post_content, '•', '-');
UPDATE wp_posts SET post_content = REPLACE(post_content, '…', '…');

UPDATE wp_comments SET comment_content = REPLACE(comment_content, '“', '“');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '”', '”');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '’', '’');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '‘', '‘');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '—', '–');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '–', '—');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '•', '-');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '…', '…');

→ Fuente: https://digwp.com/2011/07/clean-up-weird-characters-in-database

Restablecer contraseña del administrador

La seguridad de WordPress no es algo que deba descuidarse, y las contraseñas deben cambiarse de vez en cuando para asegurarse de que tu sitio web de WordPress se mantenga seguro.

Como las contraseñas de los usuarios se almacenan en la base de datos, es posible restablecerlas mediante una simple consulta SQL. Simplemente modifique la consulta a continuación reemplazándola admin_username por el nombre de usuario cuya contraseña desea cambiar. new_password es la contraseña actualizada deseada.

UPDATE `wp_users` SET `user_pass` = MD5( 'new_password' ) WHERE `wp_users`.`user_login` = "admin_username";;

Tenga en cuenta el uso de la función MD5 de MySQL, que crea un hash MD5 de la contraseña especificada. Los estándares de seguridad de WordPress requieren que las contraseñas se almacenen en la base de datos como hashes MD5.

Actualizar enlaces a HTTPS

Si recientemente cambió su sitio web o blog de WordPress a HTTPS, debe actualizar los enlaces codificados dentro de sus artículos. Esta es una tarea tediosa si la hace manualmente, pero le llevará menos de un minuto si usa consultas SQL para actualizar todos los enlaces incluidos en su contenido.

Simplemente actualice la consulta a continuación reemplazándola yoursite.com por su URL y ejecútela.

UPDATE wp_posts SET post_content = replace(post_content, 'http://yoursite.com', 'https://yoursite.com');

Bloquear trackbacks en todas las publicaciones a la vez

¿Utiliza trackbacks y pings? Hoy en día, la mayoría de la gente parece encontrarlos inútiles. Para deshacerse de ellos, puede cerrar los trackbacks manualmente, pero esto consumirá mucho tiempo. O, por supuesto, puede usar una buena consulta SQL antigua para realizar una limpieza de la base de datos, como se muestra a continuación:

UPDATE wp_posts SET ping_status = 'closed';

Eliminación masiva de todos los comentarios de spam

El spam es extremadamente común y si elige dar a sus lectores la posibilidad de interactuar en sus artículos, no hay duda de que se recibirá una gran cantidad de spam.

A lo largo de los años, WordPress ha mejorado drásticamente la forma en que se maneja el spam. Si se detecta spam, no se muestra en su sitio de WordPress de inmediato, sino que se mantiene en una cola donde puede elegir si lo aprueba o no.

Si su cola de spam es larga, la forma más rápida de eliminar en masa todos los comentarios de spam es ejecutar la siguiente consulta SQL:

DELETE FROM wp_comments WHERE comment_approved = 'spam';

Deshágase de todos los códigos cortos no utilizados (shortcodes)

Los códigos abreviados de WordPress son muy útiles y facilitan la inserción de información en sus artículos sin tener que modificar ninguno de sus temas de WordPress. Hoy en día, una amplia gama de complementos de WordPress ofrece códigos cortos que se pueden usar para integrar datos dentro del editor de WordPress.

Pero los códigos abreviados no utilizados pueden crear problemas de legibilidad: una vez que deja de usar un código abreviado (por ejemplo, cuando cambia a otro tema de WordPress), encontrará códigos abreviados en texto completo dentro de su contenido. Aquí hay una consulta SQL para eliminarlos. Simplemente actualice el código con el código abreviado que desea eliminar. He usado [tweet]en este ejemplo.

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

Eliminar metadatos de una publicación específica

Los metadatos de publicación son datos asociados con una publicación específica. Por ejemplo, cuando crea un campo personalizado, los datos se almacenan como meta. Luego se puede recuperar y mostrar en su sitio web de WordPress.

Si solía agregar un campo personalizado específico a sus publicaciones pero ya no lo necesita, puede realizar esta consulta para “limpiar de base de datos” y eliminar el meta de publicación no deseado de forma rápida y sin esfuerzo.

DELETE FROM wp_postmeta WHERE meta_key = 'YourMetaKey';

→ Fuente: https://www.esoftload.info/10-sql-statements-for-wordpress

Eliminar todas las etiquetas no utilizadas

Hace una década, las etiquetas eran muy populares en los blogs. Hoy en día, la mayoría de los bloggers y propietarios de sitios de WordPress dejaron de usarlos. Si lo hizo, ahorre algo de espacio en su base de datos limpiándola de etiquetas no utilizadas.

DELETE FROM wp_terms WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE count = 0 );
DELETE FROM wp_term_taxonomy WHERE term_id not IN (SELECT term_id FROM wp_terms);
DELETE FROM wp_term_relationships WHERE term_taxonomy_id not IN (SELECT term_taxonomy_id FROM wp_term_taxonomy);

Eliminar caché de fuentes

WordPress almacena el caché de feeds en la tabla wp_options. Si desea vaciar la caché de feeds, puede hacerlo mediante la siguiente consulta:

DELETE FROM `wp_options` WHERE `option_name` LIKE ('_transient%_feed_%')

→ Fuente: https://wpengineer.com/2114/delete-all-feed-cache…

Optimice su base de datos de WordPress eliminando transitorios

Los transitorios de WordPress son básicamente una función de almacenamiento en caché: se utilizan para almacenar cualquier tipo de datos que lleva mucho tiempo obtener y, por lo tanto, se devuelven súper rápido la próxima vez que los necesite.

Si bien esta es definitivamente una característica súper útil, los transitorios pueden ocupar mucho espacio en su base de datos cuando no se administran y reducir el rendimiento de su sitio web de WordPress.

Para realizar una limpieza avanzada de la base de datos, utilice la siguiente consulta:

DELETE FROM `wp_options` WHERE `option_name` LIKE ('%\_transient\_%');

Es totalmente seguro eliminar los transitorios de WordPress de vez en cuando, ya que WordPress volverá a crear los transitorios necesarios.

Eliminar todas las revisiones y sus metadatos

Las revisiones son una característica muy útil, pero si no elimina las muchas revisiones de vez en cuando, su base de datos se volverá muy grande rápidamente. La siguiente consulta elimina todas las revisiones, así como todos los metadatos asociados con las revisiones.

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

→ Fuente: https://onextrapixel.com/13-useful-wordpress-sql-queries-you-wish-you-knew-earlier/

Eliminar publicaciones antiguas por lotes

A veces, es posible que deba eliminar artículos muy antiguos que ya no son relevantes. La siguiente consulta eliminará cualquier artículo que tenga más de 600 días. Este valor (definido en la línea 3) puede ser reemplazado por cualquier fecha deseada en días.

Si desea hacer una versión aún mejor de esta consulta, ¿qué le parece mezclarla con la anterior para eliminar las publicaciones antiguas y sus metadatos?

DELETE FROM `wp_posts`
WHERE `post_type` = 'post'
AND DATEDIFF(NOW(), `post_date`) > 600

Eliminar agent de comentarios

De forma predeterminada, cuando alguien deja una respuesta en tu blog, WordPress guarda el agent de usuario en la base de datos. Puede ser útil para las estadísticas, pero para el 95 % de los blogueros, es simplemente inútil. Esta consulta reemplazará el agent de usuario con una cadena en blanco, lo que puede reducir el tamaño de su base de datos si tiene muchas respuestas.

update wp_comments set comment_agent ='' ;

Actualizar la dirección de correo electrónico del administrador

Todos los datos de WordPress se almacenan en tablas de bases de datos, lo que significa que se pueden actualizar muy fácilmente mediante consultas SQL.

Si necesita actualizar el correo electrónico del administrador, aquí está la consulta para hacerlo.

UPDATE `wp_users` SET `user_email` = "new_email_address" WHERE `wp_users`.`user_login` = "admin";

Por supuesto, esta consulta se puede utilizar para actualizar cualquier correo electrónico contenido en su tabla wp_users. Simplemente reemplace admin por el nombre de usuario de la cuenta que desea cambiar la dirección de correo electrónico.

Deshabilitar por lotes todos los plugins de WordPress

Puede suceder que un complemento defectuoso rompa su sitio de WordPress. Peor aún, dependiendo de la gravedad del error, puede terminar sin poder acceder a su area wp_admin donde podría haber desactivado el plugin de WordPress causando un error.

En ese caso, lo mejor que puede hacer es desactivar todos los plugins utilizando la siguiente consulta SQL:

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

Lo más probable es que esto resuelva el error y le permita volver a iniciar sesión en su panel de WP, donde puede reactivar los plugins uno por uno e identificar cuál estaba causando problemas.

Cambiar temas de WordPress usando SQL

WordPress almacena la configuración de su sitio dentro de la tabla wp_options de la base de datos. Por lo tanto, su tema de WordPress activo se puede modificar mediante una simple consulta SQL.

Esto puede ser muy útil si su tema activo tiene un error que le impide acceder a su panel de administración. La siguiente consulta restaurará Twenty Nineteen de WordPress como el tema activo.

UPDATE wp_options SET option_value = 'twentynineteen' WHERE option_name = 'template' or option_name = 'stylesheet';

Cambiar la atribución del autor en todas las publicaciones a la vez

¿Necesitas cambiar la atribución del autor en muchas publicaciones? Si es así, no tienes que hacerlo manualmente. Aquí hay una consulta útil para hacer el trabajo por usted.

Lo primero que debe hacer es recuperar las ID de los usuarios de WordPress. Una vez que haya iniciado sesión en MySQL, use la siguiente consulta SQL para obtener una lista de usuarios, así como sus ID:

SELECT ID, display_name FROM wp_users;

Consideremos que NEW_AUTHOR_ID es la identificación del nuevo autor y OLD_AUTHOR_ID es la identificación del autor anterior. Ejecute esta consulta para asignar un nuevo autor a todos los artículos actualmente asignados a OLD_AUTHOR_ID.

UPDATE wp_posts SET post_author=NEW_AUTHOR_ID WHERE post_author=OLD_AUTHOR_ID;

Una vez que se ha ejecutado esta consulta, todas las publicaciones del autor anterior parecen haber sido escritas por el nuevo autor.

Preguntas frecuentes

Limpiar base de datos Wordpress con consultas SQL

¿Qué tan seguro es ejecutar esas consultas en un sitio en vivo?

Todas las consultas anteriores han sido probadas y son totalmente seguras. Dicho esto, no hay forma de volver atrás cuando se ha ejecutado una consulta SQL. Por esta razón, siempre debe tener una copia de seguridad nueva de su base de datos. Esto se puede hacer usando un plugin de WordPress como WP Database Backup o usando copias de seguridad proporcionadas por su alojamiento de WordPress.

¿Puedo usar plugins de WordPress en lugar de ejecutar consultas?

Por supuesto. Muchos plugins de WordPress dan opciones de limpieza avanzadas para las bases de datos de WordPress. Advanced Database Cleaner es probablemente el complemento de WordPress más popular para la optimización y el rendimiento de la base de datos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *