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

- Odkaz: https://tomas-shejbal.cz/wordpressito/porovnani-pristupu-k-filtraci-oxygen-repeateru-easy-posts/
- Zveřejněno: 2025-07-30T07:13:31+02:00
- Autor: tom

# 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](https://tomas-shejbal.cz/wp-
content/uploads/2025/07/meta_query.webp)

_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í.
