WordPress ukládá všechna data do MySQL databáze. Zkrátka všechno co vytvoříte – články, stránky, média, menu, comentáře, nastavení, prostě vše se uloží v databázi.
Administrace WordPressu je skvělá v tom, že vám umožňuje, všechno toto upravovat, mazat, vytvářet, až na jeden případ.
A tím jsou hromadné úpravy.
Pokud potřebujete odstranit u všech článků nějaký custom field, třeba po odinstalovaném pluginu, nebo náhledové obrázky, čeká vás nekonečné, frustrující rozklikávání jednotlivých článků.
Naštěstí, pomocí jednoduchých SQL příkazů, dokážete velmi jednoduše, dosáhnout super výsledků.
Vždycky zálohujte!
Než cokoliv z těchto příkazů vyzkoušíte, udělejte si zálohu databáze.
Existuje řada zálohovacích pluginů pro WordPress, nebo, pokud budete zadávat příkazy v phpMyAdmin, tak udělejte export. Ušetříte si spoustu starostí.
Užitečné SQL příkazy pro WordPress
Přidání custom fieldu všem článkům
INSERT INTO wp_postmeta (post_id, meta_key, meta_value)
SELECT ID AS post_id, 'novy-custom-field'
AS meta_key 'hodnota-custom-fieldu' AS meta_value FROM wp_posts
WHERE ID NOT IN (SELECT post_id FROM wp_postmeta WHERE meta_key = 'novy-custom-field');
Kompletní smazání custom fieldu
DELETE FROM wp_postmeta WHERE meta_key = 'jmeno-custom-fieldu';
Odstranění nepřiřazených štítků
Když smažete článek, štítky zůstávají. Tímto smažete všechny, které nejsou přiřazeny, k článku.
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;
Hromadné smazání SPAMu
DELETE FROM wp_comments WHERE wp_comments.comment_approved = 'spam';
Hromadné smazání neschválených komentářů
DELETE FROM wp_comments WHERE comment_approved = 0
Uzavření komentářů, pro starší články
UPDATE wp_posts SET comment_status = 'closed' WHERE post_date < '2016-01-01' AND post_status = 'publish';
Vypnutí pinbacků a trackbaků
UPDATE wp_posts SET ping_status = 'closed';
Smazání komentářů s určitou url
Někdo vás otravuje nesmyslnými komentáři? Tak je hromadně smažte.
DELETE from wp_comments WHERE comment_author_url LIKE "%urlspamera%" ;
Výpis článků, starších, než X dní/strong>
Místo X, použijte počet dní.
SELECT * FROM 'wp_posts'
WHERE 'post_type' = 'post'
AND DATEDIFF(NOW(), 'post_date') > X
Smazání nepotřebných shortcodů
Pozor – funguje pouze na nepárové shortcody.
UPDATE wp_post SET post_content = replace(post_content, '[facebook-button]', '' ) ;
Změna článků na stránky
UPDATE wp_posts SET post_type = 'page' WHERE post_type = 'post'
Změna autora u všech článků
UPDATE wp_posts SET post_author=NEW_AUTHOR_ID WHERE post_author=OLD_AUTHOR_ID;
Kompletní smazání všech revizí
DELETE FROM wp_posts WHERE post_type = "revision";
Deaktivace všech pluginů
Hodí se především, když vám kompletně přestane fungovat web.
UPDATE wp_options SET option_value = 'a:0:{}' WHERE option_name = 'active_plugins';
Změna url u všech článků
Ideální po přesunu celého webu. Já používám plugin Better Search and Replace
UPDATE wp_posts SET guid = replace(guid, 'http://www.old-site.com','http://www.new-site.com);
Změna defaultního Admin uživatele
UPDATE wp_users SET user_login = 'Master' WHERE user_login = 'Admin';
Manuální přepsání vašeho hesla
UPDATE 'wordpress'.'wp_users' SET 'user_pass' = MD5('PASSWORD') WHERE 'wp_users'.'user_login' ='admin' LIMIT 1;
Vyhledání a změna obsahu v článku
UPDATE wp_posts SET 'post_content'
= REPLACE ('post_content',
'OriginalText',
'NewText');
Změna url obrázků, po přesunu webu
UPDATE wp_posts
SET post_content = REPLACE (post_content, 'src=”http://www.myoldurl.com', 'src=”http://www.mynewurl.com');
Vymazání všech transient
'DELETE FROM wp_options WHERE option_name LIKE "_transient_%"'
Tak to je vše, nezapomeňte zálohovat a pokud používáte jiný prefix databáze, než wp_ tak musíte příkazy upravit dle toho.