In questo articolo ho raccolto svariate query MySQL che ho trovato davvero utili nel quotidiano lavoro su WordPress. Si va dalla prima installazione fino alla gestione avanzata dei post, degli utenti, dei metadati, delle tassonomie e dei commenti. Spero che le troviate utili.
# Modifica l'URL di base del sito
UPDATE wp_options SET option_value = replace(option_value, 'http://www.oldsiteurl.com', 'http://www.newsiteurl.com') WHERE option_name = 'home' OR option_name = 'siteurl';
# Modifica il GUID
UPDATE wp_posts SET guid = REPLACE (guid, 'http://www.oldsiteurl.com', 'http://www.newsiteurl.com');
# Modifica un URL nel contenuto dei post
UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://www.oldsiteurl.com', 'http://www.newsiteurl.com');
# Modifica l'URL di base delle immagini
UPDATE wp_posts SET post_content = REPLACE (post_content, 'src="http://www.oldsiteurl.com', 'src="http://yourcdn.newsiteurl.com');
UPDATE wp_posts SET guid = REPLACE (guid, 'http://www.oldsiteurl.com', 'http://yourcdn.newsiteurl.com') WHERE post_type = 'attachment';
# Aggiorna i Post Meta
UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://www.oldsiteurl.com','http://www.newsiteurl.com');
# Modifica lo username predefinito dell'amministratore
UPDATE wp_users SET user_login = 'Username' WHERE user_login = 'Admin';
# Reset della password
UPDATE wp_users SET user_pass = MD5( 'new_password' ) WHERE user_login = 'username';
# Assegna gli articoli di un autore ad un altro
UPDATE wp_posts SET post_author = 'nuovo-id-autore' WHERE post_author = 'vecchio-id-autore';
# Cancella le revisioni
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'
# Cancella un Post Meta specifico
DELETE FROM wp_postmeta WHERE meta_key = 'valore';
# Esporta le e-mail degli autori dei commenti senza duplicati
SELECT DISTINCT comment_author_email FROM wp_comments;
# Cancella tutti i pingback
DELETE FROM wp_comments WHERE comment_type = 'pingback';
# Cancella i commenti di spam
DELETE FROM wp_comments WHERE comment_approved = 'spam';
# * 0 = Commento in attesa di moderazione
# * 1 = Commento approvato
# * spam = Spam
# Individua i tag non usati
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;