V době kdy #tyden měl webovou verzi se na rychlofky.cz nashromáždilo dobrých 12 tisíc (velmi krátkých) příspěvků. Roky starých a také nenavštěvovaných, Google (vyhledávače) nemají rády krátké příspěvky a neumístí je do vyhledávání.
Z #tyden je navíc mezitím týdenní newsletter a web už dávno nemá smysl, takže jsem se konečně rozhoupal k tomu, že tu záplavu smetí (ano, dá se to tak nazvat) prostě smažu.
Jak tedy smazat velké množství příspěvků ve WordPressu?
Není to tak jednoduché a sám WordPress nemá žádnou cestu jak to udělat. V administraci jde mazat po dávkách (můžete si změnit počet zobrazených na víc než ten malý základ), ale budete narážet na kapacitu serveru, omezení PHP (paměť a doba běhu). A při 12 tisících to mazat po sto kusech dost dobře nejde.

Komplikuje to i maličkost, že se mazané příspěvky pouze přemístí do Koše a pak ho budete muset vysypat – kde opět narazíte na omezení PHP a víc jak pár stovek se jich nepodaří smazat, prostě dorazí timeout.
Při mazání pozor i na používané cache, které je vhodné promazat ještě předtím, než začnete mazat. A pak finálně promazat poté co máte mazání hotovo.
Pamatujte i na to, že mazání příspěvku nemaže v něm použitá média (obecně jakékoliv vložené věci), takže viz Jak z WordPressu smazat všechna média?
Přes plugin
Jedno z vhodných řešení je některý z pluginu – třeba WP Bulk Delete nebo Bulk WP – tam můžete mazat třeba po 500 příspěvcích (to běžně omezená PHP dávají) a rovnou zaškrtnout, že má jít o trvalé smazání (na což fakt nezapomeňte).

Výhoda cesty před plugin je, že zpravidla smažou i transients a různé další věci, které příspěvky mohou mít někde jinde.
Mažte pomalu, ty (například) dávky 500 smazaných neuspěchejte.
Přímo v SQL
Pokud máte přístup k něčemu jako SQL Admin, tak můžete mazat přímo v SQL. Stačí použít následující příkaz:
DELETE FROM wp_posts WHERE post_type = 'post';
Nezapomeňte ale, že tohle nesmaže ony související věci, takže to také musíte udělat ručně:
DELETE FROM wp_postmeta WHERE post_id NOT IN (SELECT ID FROM wp_posts);
DELETE FROM wp_term_relationships WHERE object_id NOT IN (SELECT ID FROM wp_posts);
Přes WP-CLI
Alternativa je využít WP-CLI, tedy možnost ovládat váš WordPress přes příkazovou řádku. Tady můžete použít
wp post delete $(wp post list --post_type=post --format=ids) --force
To –force je důležité, jinak mazané skončí opět v Koši.
Další tipy týkající se WordPressu
-
TIP#2142: Jak na vlastní WordPress. Co bude chybět z WordPress.com
Po pár letech na WordPress.com zjistíte po přechodu na vlastní WordPress, že to není až tak stejné, jak by se na první dojem mohlo zdát. Chybět a řešit budete muset hodně věcí,…
-
TIP#2139: Jak z WordPressu automaticky sdílet na Linkedin
Sdílet nové příspěvky automaticky na Linkedin je u webů s WordPressem mírná komplikace. Ne všechny nástroje totiž umí sdílet na stránky. Související příspěvky TIP#804: Jak migrovat web z WordPress.org na WordPress.com? Krok…
-
TIP#2129: Praktické postřehy k blokům a widgetům na WordPressu
Od příchodu Guttenbergu je možné na WordPressu využívat různé “aktivní” bloky – vedle základního formátování umí například i zobrazovat přehledy článků (a dalších prvků) či řešit jiné věci. Většinou to funguje bez…
-
TIP#2125: Reusable blocks/Znovu použitelné bloky na WordPressu. Jak se dostat k výpisu a exportu
WordPress s Guttenbergem přinesl reusable block (znovu použitelné bloky). Kupodivu mají stejné rozhraní pro kompletní přehled jako mají Příspěvky či Stránky, ale neznámo proč to není v levém menu. Související příspěvky TIP#804:…
-
TIP#2119: Jak napojit WordPress na Google Analytics
Jedno z nejoblíbenějších řešení je Monster Insights – má ale dvě vady. Je to opravdu “monstrum” a vyžaduje napojení na jejich servery. Na druhou stranu, funguje dobře, poskytuje vše potřebné (základní potřebné,…
-
TIP#2117: Co byste po instalaci WordPressu měli smazat či změnit? install.php – pozor ať nedopadnete špatně
O nutnosti smazat install.php jsem se poučil už před lety, když jsem zprovoznil (na VPSku) můj vůbec první WordPress. Tento soubor jsem nesmazal a někdo (naštěstí hodný) do mě oprávněně rýpnul tím,…
-
TIP#2115: WordPress a XMLRPC? Proč nefunguje aplikace? Je XMLRPC bezpečné? Mám ho zakázat?
Ve většině případů na XMLRPC u WordPressu nenarazíte – zpravidla poprvé v okamžiku, kdy budete chtít zprovoznit mobilní aplikaci a ta se odmítne připojit a jako důvod uvede chybu 403 a zkratku…
-
TIP#2112: Jak na související články (příspěvky) na WordPressu
Pro řadu obsahových webů je dobré mít související příspěvky, ať už pod textem nebo někde v sloupci či patičce. Ideálně tvořené automaticky, protože ručně je to práce navíc. Generování něčeho takového je…
-
TIP#2110: Jak na WordPressu hromadně nahradit něco v článcích (databázi) za něco jiného
Na jednu věc při migraci z WordPress.com na vlastní narazíte velmi snadno. V příspěvcích i stránkách často zůstanou odkazy či obrázky s původní (nebo pracovní) webovou adresou. Ne vždy je totiž zajištěno…
-
TIP#2105: Jak na WordPressu automaticky hlídat nefunkční odkazy?
Čím déle bude fungovat váš web či blog, tím spíše se postupně začnou objevovat nefunkční odkazy – takové na které návštěvník klikne a nedostane co čekal. Může se stát i to, že…
-
TIP#2100: Jak na WordPressu pomocí .htaccess přesměrovat starou doménu na novou?
Když jsem kdysi přesunul Justit.cz věci do Pooh.cz, tak to ještě běželo na WordPress.com. Takže stačilo přidat k Pooh.cz i doménu Justit.cz jako sekundární. A udělalo to přesně co jsem chtěl, cokoliv…
-
TIP#2098: Přidat web do služeb jako Ahrefs, Yandex? Jak nastavit indexaci od Google, Bingu a dalších?
Přidat web do Google Search Console (původní Webmaster Tools) je bez diskuze zásadně užitečná a důležitá věc. Otázkou ale je, zda chcete web mít v dalších službách jako je Ahrefs, Yandex, Bing…
-
TIP#2093: Jak na vyhledávání na webu s WordPressem? Co vás čeká za komplikace?
Vyhledávání je přímo součást WordPressu a funguje poměrně dobře až do momentu, kdy váš web či blog začne mít tisíce článků (příspěvků). U desítek tisíc pak velmi rychle poznáte, že je hledání…

















