Tovább a tartalomhoz

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ő.

  • JetSmartFilters és JetEngine aktív, van egyéni bejegyzéstípus és hozzá listing elem (sablon).
  1. Nyisd meg a JetEngine → Query Builder → Add New oldalt.
  2. Add meg a nevet (a példában „Search Filter”), és a Query Type legyen SQL/AI Query.
  3. 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%%"
)
);
  1. 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, a pm.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.
  2. A Cast result to instance of object listában válaszd a Post lehetőséget.
  3. 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_).

  1. 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).
  2. A Posts Query szakasz General fülén a Post Type listában válaszd ki az egyéni bejegyzéstípust.
  3. 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.
  4. Mentsd a lekérdezést.
  1. Az Intelligens szűrők → Új hozzáadása oldalon add meg a nevet, és a Szűrő típusa legyen Keresés.
  2. A Keresés módja listában válaszd az Egyéni mező szerint (lekérdezési változóból) lehetőséget.
  3. 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.
  4. Mentsd a szűrőt az Update gombbal.
https://minta-bolt.hu/wp-admin/admin.php?page=jet-smart-filters
Keresés szűrő egyéni mező szerint

A képen a Keresés módja az egyéni mező szerinti kereséssel és a Lekérdezési változó látszik.

  1. 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.
  2. 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).
  3. 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.
  4. A Query ID mezőbe írd be ugyanazt az azonosítót (some_id).
  5. Szükség szerint igazítsd a keresés további beállításait, majd tedd közzé az oldalt.

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:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások