Przejdź do głównej zawartości

Dla deweloperów

[sieve]

Renderuje kompletny, samodzielny filtr: facety, siatkę wyników, sortowanie, aktywne etykiety filtrów i paginację. Czyta aktualny stan filtrów z adresu URL (sf_* query vars), więc pierwszy render jest serwerowy i możliwy do udostępnienia.

Blok Sieve Filter (sieve/filter) jest blokiem dynamicznym, który renderuje ten sam widget co shortcode. Dodaj go z insertera bloków.

Stan filtrów jest zapisany w adresie URL, dzięki czemu można go zapisać i bezpiecznie obsługiwać przyciskiem wstecz:

  • sf_<facet> - wybrane wartości filtra (oddzielone przecinkami, min-max dla zakresu).
  • sf_q - wyszukiwana fraza.
  • sf_orderby - kolejność sortowania.
  • sf_paged - aktualna strona.

POST /wp-json/sieve/v1/filter

Publiczny endpoint tylko do odczytu, który obsługuje filtrowanie AJAX. Body: { "query": { "sf_product_cat": "hoodies", "sf_orderby": "price" } }. Zwraca wyrenderowane fragmenty (facets_html, toolbar_html, results_html, pagination_html), liczbę wyników i found. Frontend podmienia te fragmenty w miejscu.

Endpointy administracyjne (uprawnienie manage_woocommerce):

  • GET/POST /wp-json/sieve/v1/settings - odczyt albo zapis konfiguracji filtrów.
  • GET /wp-json/sieve/v1/catalog - automatycznie wykryte źródła filtrów.
  • POST /wp-json/sieve/v1/reindex - przebudowanie indeksu.

Sieve wywołuje akcję po uruchomieniu, dzięki czemu rozszerzenie może zarejestrować dodatkowe usługi we wspólnym kontenerze:

add_action( 'sieve/booted', function ( \Sieve\Plugin $plugin ) {
// Extend the container or register your own hooks.
} );