Š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#2370: Jak měřit návštěvnost webu bez Google Analytics?
Nechtít Google Analytics na webu je dost rozumné pokud nepotřebujete žádné extra vychytávky, analýzy a propojení se vším možným od Google, Dost rozumné i s ohledem na soukromí (a GDPR a sušenkové…
-
TIP#2365: WordPress pluginy pro přímé sledování návštěvnosti. Bez Google Analytics
Rozhodl jsem se zbavit Google Analytics a začal zkoumat, jak sledovat návštěvnost mých webů na WordPressu lokálně, tedy přímo na serveru, ideálně i zcela bez cookies. Důvodů se objevilo několik. Související příspěvky…
-
TIP#2358: Co si pořídit na Cookie bannery místo Complianz?
Peklo s cookies od Evropské Unie má za následek, že si na weby musíme pořizovat šílená řešení pro cookies bannery a ještě šílenější řešení pro blokování cookies, které někomu nesmíme (nebo ještě…
-
TIP#2352: Jak ve WordPressu přesunout (hromadně) články od jednoho autora na jiného?
Ten nejprimitivnější způsob je, že si zobrazíte články/příspěvky klasicky v přehledu, nastavíte si případně větší počet než 20 (100 se ještě jakž takž dá), uděláte výběr všech a pak nad výpisem jdete…
-
TIP#2334: Velký přehled zásadních pluginů pro WordPress
Máme tu Jak na vlastní WordPress. Nepostradatelné pluginy pro WordPress sepsaný v říjnu 2021 při velkém stěhování z WordPress(dot)com na vlastní WordPress. Velmi šikovný přehled pluginů v čitelnější formě. Ale vyplatí se…
-
TIP#2329: Měl bych zamezit indexování štítků či rubrik na WordPressu? Jak to udělat?
Pokud se přes site:pooh.cz či site:365tipu.cz podíváte (lépe řečeno, podívali jste se) na věci zaindexované Google, tak uvidíte šílený zmatek Několik tisíc výsledků zahrnujících v prvním případě na dvě tisícovky (v druhém…
-
TIP#2324: Optimalizace (zmenšování velikosti) obrázků na WordPressu. Jak na to?
Dobrá zpráva je, že v tomto tipu najdete množství pluginů, které vám mohou pomoci se zmenšováním, konverzí a optimalizací obrázků pro váš web/blog na WordPressu. A to jak při nahrávání (což je…
-
TIP#2304: Je ve WordPressu nějaký rozdíl mezi výchozími šablonami a ostatními?
WordPress má “výchozí” šablony, ty které vytváří přímo WordPress(org). Každý rok je jedna nová, takže se jmenují podle roku kdy vznikly (viz například Twenty Twenty-Two). Pak je tu záplava, tisíce, šablon od…
-
TIP#2264: Jak využít QNAP pro monitoring běhu webových serverů? A nejenom QNAP
Monitoring běhu/dostupnosti webových serverů tu řeší tip Jak na monitoring dostupnosti/funkčnosti serveru? Je tam řeč o WEDOS.online, které je dostupné zdarma v beta verzi a docela dlouho ho používám pro monitoring –…
-
TIP#2262: Co když má váš WordPress problémy a nestíhá?
Po migraci FeedIT.cz na vlastní WordPress u BlueBoardu (z WordPress.com) se objevil problém s nestíháním. Ten web má přes 55 tisíc příspěvků, takže i když nemá nijak zásadní návštěvnost (okolo jednoho tisíce…
-
TIP#2258: Jak z Linuxu prověřit web s WordPressem? Použijte WPscan
WPScan je CLI pomůcka pro Linux, open source, snadno použitelné pro kontrolu webu s WordPressem zvenčí. Prozradí vám verzi WordPressu, http serveru, jaké pluginy jsou instalované, podívá se na uživatelská jméno, umí…
-
TIP#2253: Jak použít wget pro zálohování webu přes FTP?
O wget je dost detailně řeč v K čemu se vám může hodit wget? Ke stahování a zrcadlení!, ale není tam úplně zmíněna možnost využití pro zálohování webu, pokud máte přístup přes…
-
TIP#2252: Jaké cache použít pro váš WordPress web?
Probírali jsme to v Pro WordPress potřebujete cache, pokud má ustát návštěvnost. Co byste měli vědět? ale chyběl tam výčet možností. Tedy jako cache si pořídit. Související příspěvky TIP#804: Jak migrovat web…
-
TIP#2246: Vydat nějaké složitější téma jako seriál několika pokračování?
Když vyšlo Vydat dlouhý článek jako jeden celek nebo rozdělit na víc pokračování? tak nemůže chybět i pokročilejší varianta. Seriál -často se používající pro vydání nějakého složitějšího nebo výrazně dlouhého tématu. Související…
-
TIP#2245: QNAP MARS a zálohování WordPressu. Šikovná věc
Nic si nenamlouvejme, zálohování (a následně i případné obnovení) webů na WordPressu bývá jedna ze slabin. Můžete mít (snad) použitelné řešení u vašeho poskytovatele hostingu. Můžete jít do některých ze zálohovacích pluginů…