Keresés metamezőben és bejegyzéstulajdonságban
Egyéni keresés SQL/AI lekérdezéssel: a Keresés szűrő a bejegyzés címében és egy metamezőben is keres.
A Keresés szűrő alapból vagy az alapértelmezett bejegyzéstulajdonságokban (cím, kivonat, tartalom), vagy metamezőkben keres, a kettő nem vonható össze. Ha mégis mindkettőben keresnél, például egy egyéni bejegyzéstípus címében és egy szöveges metamezőjében, egy SQL/AI lekérdezés segít. A megoldás három lépés: SQL/AI lekérdezés, erre épülő bejegyzés lekérdezés, és a keresés szűrő.
Követelmények
Szekció neve “Követelmények”- JetSmartFilters és JetEngine aktív, van egyéni bejegyzéstípus és hozzá listing elem (sablon).
1. Az SQL/AI lekérdezés
Szekció neve “1. Az SQL/AI lekérdezés”- Nyisd meg a JetEngine → Query Builder → Add New oldalt.
- Add meg a nevet (a példában „Search Filter”), és a Query Type legyen SQL/AI Query.
- Görgess lejjebb, kapcsold be az Advanced/AI mode kapcsolót, és az SQL Query mezőbe írd be az alábbi lekérdezést:
SELECT p.*
FROM {prefix}posts p
LEFT JOIN {prefix}postmeta pm ON pm.post_id = p.ID AND pm.meta_key = 'property_description'
WHERE (
p.post_type="properties" AND
( "%jsf_filter_query|query_var|search_for_sql||plain%" = '' OR
p.post_title LIKE "%%jsf_filter_query|query_var|search_for_sql||plain%%" OR
pm.meta_value LIKE "%%jsf_filter_query|query_var|search_for_sql||plain%%"
)
);- Igazítsd a kódot a saját esetedhez: a
p.post_type="properties"sorba a saját bejegyzéstípusod azonosítóját (slug) írd, apm.meta_key = 'property_description'részbe pedig annak a metamezőnek a Name/ID értékét, amelyben keresni szeretnél. A lekérdezés a bejegyzés címében és ebben a metamezőben keres. - A Cast result to instance of object listában válaszd a Post lehetőséget.
- Mentsd a lekérdezést az Add Query vagy Update Query gombbal.
A {prefix} helyére a Query Builder magától a webhely adatbázis-előtagját helyettesíti be (például wp_).
2. A bejegyzés lekérdezés
Szekció neve “2. A bejegyzés lekérdezés”- Hozz létre egy új lekérdezést a JetEngine → Query Builder → Add New oldalon. A neve legyen például „Search Filter 2”, a Query Type Posts Query, a Custom Query ID pedig tetszőleges azonosító (a példában
some_id). - A Posts Query szakasz General fülén a Post Type listában válaszd ki az egyéni bejegyzéstípust.
- A Post & Page fülön a Post In mező melletti dinamikus címke ikonra kattintva válaszd a Query Results makrót. A felugró ablakban a Query listából jelöld ki az SQL/AI lekérdezést („Search Filter”), a Return listából a List of items IDs értéket, majd kattints az Apply gombra.
- Mentsd a lekérdezést.
3. A keresés szűrő
Szekció neve “3. A keresés szűrő”- Az Intelligens szűrők → Új hozzáadása oldalon add meg a nevet, és a Szűrő típusa legyen Keresés.
- A Keresés módja listában válaszd az Egyéni mező szerint (lekérdezési változóból) lehetőséget.
- A Lekérdezési változó mező melletti dinamikus címke ikonnal válaszd a Plain Query Variable lehetőséget, és a Variable Name legyen
search_for_sql. A mezőben ekkor a_plain_query::search_for_sqlérték jelenik meg. - Mentsd a szűrőt az Update gombbal.

A képen a Keresés módja az egyéni mező szerinti kereséssel és a Lekérdezési változó látszik.
4. Az oldalon
Szekció neve “4. Az oldalon”- Hozz létre vagy nyiss meg egy oldalt. A példában két oszlopot készítünk: a jobb oszlopba a Listing Grid kerül.
- A Listing Gridnél válaszd ki a listing sablont, majd a Advanced fülön a CSS ID mezőbe írd be a bejegyzés lekérdezés Custom Query ID értékét (
some_id). - A bal oszlopba tedd a Search Filter widgetet. A Select filter listában válaszd ki a szűrőt, a This filter for listában a JetEngine értéket, az Apply type legyen Mixed.
- A Query ID mezőbe írd be ugyanazt az azonosítót (
some_id). - Szükség szerint igazítsd a keresés további beállításait, majd tedd közzé az oldalt.
Próba
Szekció neve “Próba”A nyilvános oldalon írj be egy szót (a példában „garage”), és kattints az alkalmaz gombra. A lista a találatokra szűkül: azokat a bejegyzéseket mutatja, amelyek címében vagy a megadott metamezőjében szerepel a keresett szöveg.
Készült: