Wyszukiwarka WordPress - ulepszenie i konfiguracja
Domyślna wyszukiwarka WordPress jest... podstawowa. Nie przeszukuje custom fields, nie rozumie synonimów, wyniki są według daty nie trafności. Na szczęście można ją znacząco ulepszyć.
Krótka odpowiedź
Problemy domyślnej wyszukiwarki
Co przeszukuje:
- Tytuł posta
- Treść posta
- Excerpt
Czego NIE przeszukuje:
- Custom fields (ACF)
- Komentarze
- Taxonomie (kategorie, tagi)
- Produkty WooCommerce (custom attributes)
- PDF, dokumenty
Sortowanie:
- Tylko po dacie (ostatnie pierwsze)
- Brak relevance ranking
- "WordPress" znajdzie stary post bez związku
Brak:
- Synonimów
- Fuzzy matching (literówki)
- Stopwords
Relevanssi (darmowa)
Instalacja:
- Wtyczki → Relevanssi
- Aktywuj
- Zbuduj index (Settings → Relevanssi → Build index)
Co dodaje:
- Sortowanie po trafności
- Przeszukiwanie custom fields
- Fuzzy matching
- Highlighting wyników
- Stopwords (ignorowane słowa)
Konfiguracja:
1. Settings → Relevanssi
2. Indexing tab: zaznacz co indeksować
3. Custom fields: wpisz nazwy pól ACF
4. Excerpts: włącz highlighting
5. Build the index
Relevanssi Premium ($99/rok):
- PDF/doc indexing
- Synonimów
- WooCommerce integracja
- Related posts
SearchWP (premium)
Dlaczego SearchWP:
- Najlepsza premium opcja
- Przeszukuje wszystko
- WooCommerce optymalizacja
- PDF, Office docs
- Własna waga wyników
Cena: $99/rok (1 site)
Konfiguracja:
1. SearchWP → Settings
2. Engines → Default
3. Dodaj źródła (Posts, Pages, Products)
4. Ustaw wagi (tytuł ważniejszy niż treść)
5. Rebuild index
Integracje:
- WooCommerce
- ACF
- bbPress
- Custom tables
SearchWP Live Ajax:
- Darmowy dodatek
- Wyniki podczas wpisywania
- Dropdown z sugestiami
Ajax Live Search
FiboSearch (dawniej Ajax Search for WooCommerce):
- Dla sklepów WooCommerce
- Live search z miniaturkami
- Produkty, kategorie, tagi
- Darmowa wersja wystarczy
SearchWP Live Ajax Search:
- Dla SearchWP
- Dropdown podczas wpisywania
- Konfigurowalny template
Własna implementacja:
```javascript
document.querySelector('.search-input').addEventListener('input', debounce(function(e) {
fetch('/wp-json/wp/v2/posts?search=' + e.target.value)
.then(res => res.json())
.then(posts => {
// Wyświetl dropdown
});
}, 300));
```
Elasticsearch (duże strony):
- ElasticPress plugin
- Własny serwer Elastic lub Elastic Cloud
- Dla 100k+ postów/produktów