Štítky ve WordPressu jsou tak trochu peklo. Nejen že je třeba je udržovat tak abyste neměli zbytečné štítky (takové co mají žádné nebo minimum článků), ale velmi snadno vznikají různorodé “duplicity”. Hlavně tak že zadáte štítek jinak, než jste ho dříve zadali. Nebo při zadávání překlepem vznikne jiná forma.
Jednou za čas se vyplatí čistit takto “duplicitní” štítky – zrušit špatný a převést k němu přiřazené články na správnou firmu není až tak problém, v tom vám pomůže TaxoPress plugin. Umí totiž Merge/Rename kdy prostě ukážete na špatný štítek a pak vyberete ten správný a vše přiřazené k špatnému převede na nový.
Problém je, že TaxoPress neumí hledat duplikáty. A nevypadá to, že by existoval plugin, který by to uměl – hlavně s fuzzy logikou, tedy zohledňoval překlepy, chybějící znaky, prohozená slova.
TIP: Jak pracovat se štítky u článků? Kompletní návod jak na štítky u obsahového webu (1) je počáteční díl velmi užitečné série tipů popisující jak pracovat se štítky
Pomůže AI
Vydal jsem se zkoušet Bard se zadáním “I have csv file with strings (tags from wordpress) and i need to find duplicates in them, can you help me?“ a postupnou konverzací jsme došli ke skriptu v Pythonu. Ten si můžete pustit v počítači, nebo v něčem jako Google Colab.
V Pythonu můžete využít knihovnu fuzzywuzzy vhodnou právě k nalézání fuzzy duplikátů. A výsledný kód najdete o kousek níže. Počítá s tím, že na vstupu bude mít v tags.csv export tagů (uložte jako ANSI) a výstup, tedy přehled duplicit uloží do duplicate.csv
import fuzzywuzzy.fuzz as fuzz
import csv
def is_duplicate(tag1, tag2):
if tag1 == tag2:
return False
else:
return fuzz.ratio(tag1, tag2) > 90
def find_duplicates(tags):
duplicates = []
for tag1 in tags:
for tag2 in tags:
if is_duplicate(tag1, tag2):
duplicates.append((tag1, tag2))
return duplicates
# Read the CSV file into a list of tags
tags = []
with open('tags.csv', 'r') as f:
for line in f:
tags.append(line.strip())
# Find non-exact duplicates
duplicates = find_duplicates(tags)
# Save the results to a CSV file
with open('duplicates.csv', 'w', newline='') as f:
writer = csv.writer(f)
for duplicate in duplicates:
writer.writerow(duplicate)
Aby to fungovalo, tak budete potřebovat nainstalovat onu výše zmíněnou knihovnu, tj:
pip install fuzzywuzzy
a vyplatí se nainstalovat i další knihovnu, která vše výrazně zrychlí
pip install python-Levenshtein
Získat štítky z WordPressu
Ještě před tím vším ale musíte z vašeho WordPressu dostat štítky – to jde nejlépe udělat v nějakém tom Admineru či phpMyAdmin kde spustíte SQL dotaz
SELECT name FROM wp_terms WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE taxonomy = 'post_tag');
Získaný výstup pak pomoci export uložíte do tags.csv – případně pře uložení do ANSI ve Windows snadno v Notepadu – otevřete, dáte Uložit Jako a dole vyberete kódování.
Zpracování je už jen na vás
Výsledek v duplicates.csv si pak můžete otevřít (Excel, Google Sheets, atd) a jít řádku po řádce nalezených duplicit – v TaxoPress pak můžete snadno v Manage Terms -> Merge Terms zvolit nejprve špatnou a poté dobrou formu a nechat spojit. Dost se hodí našeptávač.

Jak vypadá výstup vidíte níže (z FeedIT.cz). Je dost jisté, že některé z duplicit nezjistí, ale to můžete ovlivnit i volbou fuzz.ratio ve skriptu. Ne vše také musí být duplicity – Adastra a Aastra jsou dva správné štítky. Proto je nutné aby výsledek zpracovával člověk.

Mimochodem, ten zvláštní duplikát na řádku 17/19 kde jsou v názvu otazníky je způsobeny tím, že otazníky jsou ‌ (tzv. zero-width non-joiner) – v tomto konkrétním případě je asi někdo (dost zbytečně) použil v tiskové zprávě a přes copy/paste pak došlo k vytvoření štítku – jde o neviditelné znaky, takže ve WordPressu je neuvidíte.
FeedIT.cz má přes 5 tisíc štítků – výše uvedený skript našel zhruba 200 duplikátů.
Další tipy týkající se WordPressu
-
TIP#2153: Co dělat s Wordfence zaplňující SQL v tabulce wp_wfhoover?
To nejrychlejší a nejsnazší co můžete udělat s nadměrnou wp_wfhoover je smazat její obsah – slouží k tomu TRUNCATE v SQL, takže buď v nějakém pluginu co to umožní nebo v admineru/phpMyAdmin…
-
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…

















