SQL es el lenguaje para manejar las bases de datos y en este artículo veremos algunas declaraciones que nos pueden salvar de un aprieto con nuestro WordPress. La mayoría de los servicios de hosting disponen de algún gestor de bases de datos como ser phpMyAdmin, en caso de no estar disponible, cualquiera que tenga un acceso FTP puede instalarlo en el servidor y utilizarlo.
Primero cambiamos la dirección del blog.
UPDATE wp_options SET option_value = replace(option_value, 'http://www.dominio-viejo.com', 'http://www.dominio-nuevo.com') WHERE option_name = 'home' OR option_name = 'siteurl';
Cambiamos todas las URLs de los posts.
UPDATE wp_posts SET guid = replace(guid, 'http://www.dominio-viejo.com','http://www.dominio-nuevo.com');
Y finalmente modificamos dentro de cada entrada cualquier link que encuentre hacia el contenido viejo, muy frecuente de ver para el caso de imágenes.
UPDATE wp_posts SET post_content = replace(post_content, 'http://www.dominio-viejo.com', 'http://www.dominio-nuevo.com');
Si necesitamos cambiar el valor de un custom field determinado podemos utilizar la siguiente sentencia, en donde ‘CustomField’ debe ser reemplazado por el nombre del campo personalizado en donde figuran los valores a cambiar:
UPDATE wp_postmeta SET meta_value = replace(meta_value, 'valor viejo', 'valor nuevo') WHERE 'meta_key' LIKE 'CustomField'
También puede no indicarse el campo personalizado y permitir que el reemplazo sea extensivo.
UPDATE wp_postmeta SET meta_value = replace(meta_value, 'valor viejo', 'valor nuevo')
Con esta declaración cambiamos la contraseña del usuario admin
UPDATE 'wp_users' SET 'user_pass' = MD5('PASSWORD') WHERE 'user_login' ='admin' LIMIT 1;Busca todas las entradas que tengan X ID de usuario y las cambia a otro autor. En ambos casos se debe señalar el ID.
UPDATE wp_posts SET post_author=NEW_AUTHOR_ID WHERE post_author=OLD_AUTHOR_ID;
Y todos los meta relacionados 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);
Las etiquetas sin uso pueden borrarse tranquilamente.
SELECT * 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;
Es útil para efectuar correcciones masivamente. Por ejemplo, supongamos que necesitamos cambiar todos los términos wordpress (en minúsculas) por WordPress (con dos mayúsculas) en un blog de gran cantidad de entradas. Con esta declaración facilmente podemos hacerlo.
UPDATE table_name SET field_name = replace( field_name, 'string_to_find', 'string_to_replace' ) ;
El parámetro DISTINCT indicará que aunque un mail se repita muchas veces debe listarlo sólo una, de este modo nos aseguramos que nuestro listado no contenga direcciones repetidas.
SELECT DISTINCT comment_author_email FROM wp_comments;
UPDATE wp_options SET option_value = '' WHERE option_name = 'active_plugins';
La siguiente consulta cerrará los comentarios para todas las entradas anteriores al primero de enero de 2011.
UPDATE wp_posts SET comment_status = 'closed' WHERE post_date < '2011-01-01' AND post_status = 'publish';
Digamos que un buen comentador muda su website a otro dominio y desea conservar los backlinks.
UPDATE wp_comments SET comment_author_url = REPLACE( comment_author_url, 'http://www.viejo-dominio.com', 'http://www.nuevo-dominio.com' );
DELETE from wp_comments WHERE comment_author_url LIKE "%wp-url%" ;
Suele suceder durante migraciones, en donde descubrimos que algunos extraños pueden aparecer en las entradas o comentarios.
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, '…', '…');
Fuentes Catswhocode y wprecipes
Emprendedora incansable, fundadora de SummArg y de SiteFun.
3-8-11
Información Bitacoras.com…
Valora en Bitacoras.com: SQL es el lenguaje para manejar las bases de datos y en este artículo veremos algunas declaraciones que nos pueden salvar de un aprieto con nuestro WordPress. La mayoría de los servicios de hosting disponen de algún gestor de…..
7-2-12
Muy bueno y muy bien explicado me va a servir de mucha ayuda, gracias.