zpět na technikálie

Porovnání přístupů k filtraci Oxygen Repeateru/Easy Posts

Oxygen 4.9.1 neumožňuje dynamicky filtrovat výpisy příspěvků. Ať už používáme Repeater nebo Easy Posts.

Řešení jsou různá. Pojďme si je shrnout.

Snímek obrazovky z Oxygen Repeater: Advanced Query

Datum poslední změny: 30. 7 2025

1. Java Script filtrace

Filtrování probíhá na straně prohlížeče, všechna data (příspěvky) jsou načtena najednou a JS filtrace spočívá jen skrývá příspěvky, které nevyhovují filtračním parametrům.

Výhody

  • Rychlá reakce na filtrování (bez volání serveru a stahování dat)
  • Není potřeba serverová implementace
  • Funguje i offline po prvním načtení

Nevýhody

  • Musí se načíst všechna data najednou (-> pro velké množství článků s obrázky nevhodné)
  • Nefunguje pagination (stránkování)
  • Vyšší zatížení prohlížeče
  • Může ovlivnit SEO (stránka se déle načítá)
  • Nesdílitelné URL s filtry

Tady přímo video od Eliase z Oxygen, kde ukazuje, jak se dá taková filtrace realizovat.

2. Nezávislé REST API řešení

Vytvoření vlastního endpointu (php souboru na serveru, kde je uvedeno, co se má stát po zavolání) pro filtrovaná data.

Výhody

  • Přenáší jen potřebná data
  • Možnost optimalizace přenosu dat
  • Flexibilní formát dat
  • Vhodné pro mobilní aplikace

Nevýhody

  • Nutnost duplikovat WP Query logiku (kterou už jednou máme v Repeater nebo Easy Posts)
  • Složitější implementace
  • Nutnost řešit zabezpečení endpointu
  • Více míst pro potenciální chyby
  • Složitější údržba (změny na dvou místech)

3. Řešení s využitím Oxygen renderingu a AJAX

Místo vytváření paralelní implementace WP Query v REST API se dá využít existující Oxygen funkcionalita - stejná, jakou používá Oxygen při aktualizaci výpisu příspěvků během jejich editace.

Tento přístup vede k robustnějšímu a udržitelnějšímu kódu. Server posílá data pro celou stránku, my si z toho bereme jen potřebný obsah.

Výhody

  • Jednoduchá implementace
  • WP Query pouze na jednom místě
  • Funguje s paginací
  • Sdílitelné URL s filtry
  • Zachování všech Oxygen funkcí
  • Robustní řešení
  • Menší šance na chyby
  • Jednodušší údržba

Nevýhody

  • Přenáší celou stránku, i když použijeme jen část (vyšší datové přenosy než u REST API)
  • Mírně vyšší zatížení serveru
  • Pomalejší než čistě JavaScript řešení

Závěr

AJAX řešení s využitím Oxygen renderingu představuje nejlepší kompromis mezi jednoduchostí implementace a funkčností. I když není nejefektivnější z hlediska přenosu dat, jeho výhody v podobě jednodušší údržby, robustnosti a zachování všech Oxygen funkcí převažují nad nevýhodami.

Pro většinu projektů je toto řešení optimální, pokud:

  1. Nemáš extrémně velký dataset
  2. Nepotřebuješ minimalizovat zatížení serveru
  3. Chceš jednoduché a spolehlivé řešení
  4. Používáš standardní Oxygen funkcionalitu

V dalším článku řešení rozebírám a ukazuju kousky kódu, které vedou k řešení.

WordPressito

Měsíční newsletter pro majitele webů, kteří chtějí, aby jejich WordPress spolehlivě fungoval.

Dozvíš se:

🔌 Tipy na užitečné pluginy a nástroje.
🆕 Novinky z WordPress světa.
💡 Praktické návody a rady.

linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram