A kereső testreszabása kóddal
További mezők a keresőűrlapon, leírás a találatokban és saját találati elrendezés a Kereső kiegészítő horgaival.
A keresőűrlap és a találatok megjelenését néhány horoggal (WordPress-szűrővel) módosíthatod. A kódot a sablonod functions.php fájljába (vagy egy saját bővítménybe) kell tenned. A példák kiindulási minták: a saját oldaladhoz igazítsd őket.
További mezők a keresőűrlapon
Szekció neve “További mezők a keresőűrlapon”A wpbs_search_widget_additional_fields szűrővel új mezőket adhatsz a keresőűrlaphoz. A mezők a dátummezők mellett jelennek meg.

Figyeld meg, hogy a Kezdés dátuma és a Befejezés dátuma mellett ott a saját meződ is.
Minden mezőt egy tömb ír le a következő kulcsokkal:
| Kulcs | Mit csinál | Alapérték |
|---|---|---|
name |
A mező neve, ez látszik az űrlapon. | üres |
slug |
A mező azonosítója. Ha üresen hagyod, a névből készül (wpbs-search-<név>). |
a névből |
type |
A mező típusa: dropdown (legördülő lista) vagy text (szöveg). |
üres |
required |
Kötelező-e kitölteni (true vagy false). |
false |
required_message |
A hibaüzenet, ha a kötelező mező üres. | „A(z) … mező nem lehet üres.” jellegű alapüzenet |
placeholder |
A mezőben látszó segédszöveg. | üres |
values |
A legördülő lista értékei, csak dropdown típusnál. |
üres lista |
validation |
Szűrőfüggvény: eldönti, hogy egy naptár megfelel-e a mező értékének. | minden naptár megfelel |
A validation függvény két paramétert kap: a látogató által választott értéket ($value) és a naptár adatait ($data). Ebből a $data['calendar_id'] a naptár azonosítója, a $data['post_id'] a naptárhoz rendelt bejegyzés azonosítója. true esetén a naptár szerepelhet a találatok között (ha a dátumok szabadok), false esetén kiesik.
1. példa: szűrés a bejegyzés meta-értéke szerint
Szekció neve “1. példa: szűrés a bejegyzés meta-értéke szerint”Az új mező a naptárhoz rendelt bejegyzés valamelyik egyéni mezőjét (meta-értékét) hasonlítja a választott értékhez. Itt az ACF number_of_people mezőjével: ha a naptár kevesebb főt fogad, mint amennyit a látogató választott, kiesik a találatokból.
add_filter('wpbs_search_widget_additional_fields', function ($fields) { $fields[] = array( 'name' => 'Személyek', 'type' => 'dropdown', 'required' => true, 'placeholder' => '', 'values' => [1, 2, 3, 4], 'validation' => function ($value, $data) { $post_id = $data['post_id'];
if (function_exists('get_field') && get_field('number_of_people', $post_id) < $value) { return false; }
return true; } );
return $fields;});2. példa: szűrés a naptár azonosítója szerint
Szekció neve “2. példa: szűrés a naptár azonosítója szerint”A mező értéke alapján más-más naptárakat jeleníthetsz meg. A példában a „Város” választásakor csak az 1., 2. és 3. naptár jelenik meg (ha szabadok a dátumok), a „Part” választásakor a 4., 5. és 6.
add_filter('wpbs_search_widget_additional_fields', function ($fields) { $fields[] = array( 'name' => 'Helyszín', 'type' => 'dropdown', 'required' => true, 'placeholder' => '', 'values' => ['Város', 'Part'], 'validation' => function ($value, $data) { $calendar_id = $data['calendar_id'];
if ($value == 'Város' && in_array($calendar_id, [1, 2, 3])) { return true; }
if ($value == 'Part' && in_array($calendar_id, [4, 5, 6])) { return true; }
return false; } );
return $fields;});Leírás a találatok mellett
Szekció neve “Leírás a találatok mellett”A találatokban alapból nincs leírás, mert a naptárhoz nem tartozik erre szolgáló mező. A wpbs_search_result_after_title szűrővel a találat címe alá írhatsz egy rövid szöveget. A szöveg forrása lehet egyéni meta-mező, ACF-mező vagy a bejegyzés kivonata (ha van); azt használd, amelyik nálad megvan.
add_filter('wpbs_search_result_after_title', function ($output, $data) { // egyéni meta-mezőből $description = get_post_meta($data['post_id'], 'description_text', true);
// vagy ACF-mezőből // $description = get_field('description_text', $data['post_id']);
// vagy a bejegyzés kivonatából // $description = get_the_excerpt($data['post_id']);
if ($description) { $output .= '<p>' . $description . '</p>'; }
return $output;}, 10, 2);A három forrásból egyet válassz, a többi sort töröld vagy hagyd kommentben.
A találatok elrendezésének módosítása
Szekció neve “A találatok elrendezésének módosítása”Az egyes találatok HTML-jét a wpbs_search_resuts_html szűrő adja át, itt átírhatod vagy teljesen lecserélheted. A szűrő neve a bővítményben így van írva (az „results” szóból kimarad az „l”), pontosan így használd.
A függvény $output paramétere a találat kész HTML-je, a $data tömb pedig az alapadatokat tartalmazza:
| Kulcs | Tartalma |
|---|---|
calendar_name |
A naptár neve. |
link |
A naptár oldalán beállított hivatkozás: üres, egy oldal vagy bejegyzés permalinkje, vagy külső hivatkozás. |
post_id |
A bejegyzés azonosítója, ha a hivatkozás típusa belső hivatkozás. |
button_label |
A megtekintés gomb felirata. |
price |
A kiválasztott időszak árai: az összár és az éjszakánkénti ár. |
add_filter('wpbs_search_resuts_html', function ($output, $data) { // ide építsd a saját HTML-t
return $output;}, 10, 2);A kisebb kiegészítésekhez nem kell az egész találatot lecserélni. Ezekkel a szűrőkkel a megfelelő helyre szúrhatsz be tartalmat: wpbs_search_result_before_title, wpbs_search_result_after_title, wpbs_search_result_before_button, wpbs_search_result_after_button.
Készült: