Š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#2505: Uklízíte v databázi ve vašem WordPressu? Co dělat s oEmbed Cache In Post Meta
Jedna maličkost, kterou nejspíš neznáte – kdykoliv do příspěvků umístíte nějaký ten “embedovaný” obsah, tedy například video na YouTube, tak editor stáhne potřebný kód pro embed a uloží do “oEmbed Cache” pro…
-
TIP#2500: Otevírat odkazy v novém okně (záložce) či neotevírat?
Otevření odkazu v novém okně či záložce je běžná praxe na mnoha webových stránkách. Ale je to vždy správný krok? Jaká jsou rizika a výhody obou přístupů? Související příspěvky TIP#835: Co se…
-
TIP#2497: Uklízíte v databázi ve vašem WordPressu? Kolik revizí příspěvků tam máte schovaných?
Typická věc vhodná k úklidu jsou revize. Každá změna v příspěvku/stránce totiž uchovává předchozí verzi. A pokud hodně opravujete, ale třeba i postupně píšete, tak těch revizí může být docela dost a…
-
TIP#2495: Mohu z mého WordPressu odstranit plugin tak, že smažu složku s pluginem?
Rychlá odpověď je, ano, můžete. Zafunguje to, ale dobrá cesta to není. U řady pluginů totiž takto zůstanou data pluginu v databázi – nedojde totiž k úklidu. A v databází těch tabulek…
-
TIP#2492: Máte web? Tak si ohlídejte přesměrování http na https a www na bez www (nebo opačně)
Stále se s tím setkávám, takže je čas tomu věnovat menší samostatný tip. Týká se provozu webu na https – což je dnes normální, běžné a nutné. To co bylo popisování v…
-
TIP#2478: Je WordPress pluginy nutné instalovat, nebo je stačí jen nakopírovat kam patří?
Odpověď je vlastně snadná, ale trochu zapeklitá. Můžete totiž vzít ZIP s pluginem, rozbalit si složku co v něm je a tu složku nahrát do wp-content/plugins a poté můžete ve WP-Admin otevřít/obnovit…
-
TIP#2443: Jak na QNAP NAS provozovat webový server (Apache). Základní cesta. A jak tam dostat WordPress
Součástí QNAP NAS je možnost mít Apache. Instalace v Control Panel -> Applications kde najdete Web Server. Tam pak už stačí zaškrtnout Enable Web Server. Vytvoří se tím i network share Web…
-
TIP#2431: Jak migrovat WordPress: Přenesení nastavení šablony
Migrace webu na WordPressu je takový prazvláštní úkon. Některé věci se dají, některé drhnou, některé jsou skoro “next to impossible”. Přitom by to mělo být snadné. Vzít váš existující web – soubory/média,…
-
TIP#2408: Jak zjistit kolik diskového místa mi zabírá WordPress web?
Načaté je to už v Co dělat, když vašemu WordPressu dochází diskový prostor? ale není tam nijak extra řešeno jak vlastně zjišťovat stav volného prostoru (zaplnění disku). Související příspěvky TIP#792: Jak migrovat…
-
TIP#2398: Software pro management WordPressů
Proč si pořídit něco lepšího na správu vašich WordPressů? Protože když jich máte víc, tak budete trávit kupu času přebíháním z jednoho do druhého a spouštěním aktualizací a řadou dalších věcí. Související…
-
TIP#2393: Jak zvětšit omezení velikosti souborů nahrávatelných na WordPress?
Jedna z věcí na které narazíte při (například) používání QNAP MARS zálohování pro WordPress je nemožnost obnovit velké weby. Platí to ale i pro jiná zálohovací zařízení – většina hostingu má omezenou…
-
TIP#2388: Jak ve WordPressu získat možnost duplikovat (kopírovat) příspěvky
Jedna dost často potřebná a přesto chybějící věc ve WordPressu je vytvořit kopii (duplikát) nějakého příspěvku či stránky. Můžete to řešit pomoci copy/paste, ale to je poněkud otravné a zdlouhavé. Související příspěvky…
-
TIP#2380: Jak najít ve WordPressu příspěvky/stránky/opakovaně použitelné bloky kde používáte konkrétní prvek? Jak kopírovat a měnit konkrétní blok?
Tohle je taková trochu nedotažená věc ve WordPressu. Můžete používat nějaké stavební prvky – jako třeba /blog z Wodpress.com Editing Toolkit pro výpis příspěvků z určitého štítku/rubriky. Jenže v okamžiku kdy ho…
-
TIP#2375: Jak na WordPressu na výpisy článků podle štítku nebo rubriky?
Na WordPress.com je součástí instalace blok /blog pro výpis článků – podporuje podle štítku a rubriky (dost důležité, že oboje a zejména podle štítůu), různé velikost písma i náhledových obrázků (také dost…
-
TIP#2372: Lepší menu pro WordPress se vyplatí. Jak na to?
WordPress umí přímo vytvářet menu a vaše šablona s nimi bude umět pracovat – zobrazovat je svisle či vodorovně, umístit podle potřeby, podporovat úrovně položek, umět jich případně i více. Vy sami…