Felhasználók listázása: profillink, ábécészűrő, csak szerzők
Kattintható felhasználói profil a Listing Gridben, ábécészűrő a felhasználók listájához, és csak a bejegyzést közzétett felhasználók megjelenítése.
Három megoldás a Users forrású Listing Gridhez. A felhasználói listázási elem alapjairól a Felhasználók listázási sablonja fejezetben olvashatsz.
Kattintható felhasználói profil
Szekció neve “Kattintható felhasználói profil”A cél, hogy a listában minden felhasználó neve a saját profiloldalára vigyen.
Előfeltétel: ingyenes Elementor vagy blokkszerkesztő, aktív JetEngine, és engedélyezett Profile Builder modul elkészített felhasználói profiloldallal.
- A JetEngine → Listázások/komponensek oldalon kattints az Új elem hozzáadása gombra, és a listázási forrás legyen Users.
- A megnyíló Elementor-szerkesztőben tegyél le egy Heading widgetet.
- A Link sor dinamikus címkék ikonjára kattintva válaszd a Profile Page URL címkét. A beállításoknál a Profile Page legördülő listában az a profiloldal kell, amelyet a Profile Builder beállításai között, a User Page fülön találsz.
- A Title mezőbe írhatsz szabad szöveget, vagy beállíthatod, hogy a lekérdezett felhasználó becenevét írja ki.
- Frissítsd a listázási elemet.
- Az oldalon, ahol a lista megjelenik, add hozzá a Listing Grid widgetet, és válaszd ki a most elkészített listázási elemet. Frissítsd az oldalt.
Innentől minden felhasználó neve a saját profiloldalára mutat.
Ábécészűrő a felhasználók listájához
Szekció neve “Ábécészűrő a felhasználók listájához”A JetSmartFilters ábécészűrője (Alphabet) csak bejegyzésekkel és termékekkel működik, a felhasználók listájára közvetlenül nem alkalmazható. Helyette egy Radio szűrő és egy egyéni SQL-lekérdezés együtt adja ugyanezt. Szükséges: ingyenes Elementor, blokkszerkesztő vagy Bricks, aktív JetSmartFilters és JetEngine, és egy felhasználókat megjelenítő listázási elem.
A szűrő
Szekció neve “A szűrő”- A Smart Filters → Add New oldalon adj nevet a szűrőnek (például „Ábécészűrő”), a típusa legyen Radio.
- A Data Source értéke Manual Input, majd az Options List résznél kattints az Add New gombra.
- Minden betűhöz vegyél fel egy opciót, amelynek az értéke egy reguláris kifejezés a kis- és nagybetűs változattal:
^a|^A^b|^B^c|^Cés így tovább az összes betűig. Ettől a szűrő nem érzékeny a kis- és nagybetűre.
- Ha szeretnéd, kapcsold be az Ability to deselect radio buttons kapcsolót.
- A Query Variable mezőbe ezt írd:
_plain_query::filtering. A_plain_query::rész jelzi, hogy az érték sima SQL-értékként kerül a lekérdezésbe, afilteringpedig egy tetszőleges változónév, amelynek meg kell egyeznie a Lekérdezéskészítőben megadott Variable Name értékkel. - Töltsd ki a Filter Labels részt, majd kattints az Update gombra.
Az SQL-lekérdezés
Szekció neve “Az SQL-lekérdezés”- Nyisd meg a JetEngine → Lekérdezéskészítő oldalt, és kattints az új lekérdezés hozzáadására.

A képen az új lekérdezés űrlapja látszik: a nevet és a típust itt adod meg, az Egyéni lekérdezés-ID mezőt pedig akkor használod, ha több szűrt listát kötsz össze az oldalon.
- Add meg a nevet (például „Felhasználók ábécészűrő lekérdezése”), a lekérdezés típusa legyen SQL/AI Query.
- A Custom SQL Query szakaszban a From table listából válaszd a
userstáblát. - A Where (query clauses) résznél kattints az Add new gombra: Column =
display_name, Operator = Regexp (reguláris kifejezéssel egyezés; így a megadott betűvel kezdődő nevek jönnek). - A Value mező melletti dinamikus címkék gombbal válaszd a JetSmartFilters Query címkét, a Type értéke Plain Query Var, a Variable Name pedig a szűrő Query Variable mezőjének második fele (
filtering). Kattints az Apply gombra. - Pipáld be az Exclude this clause from the query if the dynamic value is empty jelölőnégyzetet, hogy a lista ne maradjon üres, amíg nincs kiválasztott betű.
- Opcionális: az Order & Order By részben rendezhetsz (például
user_login, From lowest to highest values, típus Char), a Show/Per Page Limit értéke lehet 6, az Offset 1 (ez kihagyja az első felhasználót, itt az adminisztrátort). - A Cast result to instance of object mezőben válaszd a User opciót, hogy a JetEngine felhasználóként értelmezze az eredményt.
- Kattints az Add Query gombra.
A lekérdezés és a szűrő az oldalon
Szekció neve “A lekérdezés és a szűrő az oldalon”- Az oldalon add hozzá a Listing Grid widgetet a felhasználói listázási elemmel.
- A Custom Query fülön kapcsold be a Use Custom Query kapcsolót, és válaszd ki az SQL-lekérdezést.
- A lista fölé tedd a Radio Filter widgetet: a Select filter mezőben az ábécészűrő, a This filter for értéke JetEngine.
- Tedd közzé az oldalt.
Ha egy oldalon több Listing Grid van, minden szűrt készlethez adj egyedi azonosítót: a Lekérdezéskészítőben a Custom Query ID mezőbe, ugyanezt a Listing Grid Advanced fülének CSS ID mezőjébe, és a szűrő widget Query ID mezőjébe. Így a szűrő csak a hozzá tartozó listára hat.
A frontenden a betűk választógombként jelennek meg a lista fölött. Egy betű kiválasztása után csak az azzal kezdődő nevű felhasználók maradnak.
Csak a bejegyzést közzétett felhasználók
Szekció neve “Csak a bejegyzést közzétett felhasználók”Ha csak azokat a felhasználókat akarod listázni, akik tényleg publikáltak bejegyzést vagy oldalt, két lekérdezés kell: egy SQL, amely kiválasztja őket, és egy felhasználói lekérdezés, amely az SQL eredményét használja.
SQL-lekérdezés
Szekció neve “SQL-lekérdezés”- A JetEngine → Lekérdezéskészítő oldalon hozz létre egy lekérdezést (például „felhasználók bejegyzésekkel”), típusa SQL/AI Query.
- A Custom SQL Query szakaszban kapcsold be az Advanced/AI mode kapcsolót.
- Az SQL Query mezőbe írd:
SELECT *FROM ( SELECT {prefix}users.ID, display_name, user_login, user_nicename, COUNT( {prefix}posts.ID ) AS n, SUBSTRING_INDEX(display_name,' ',-1 ) AS lastname
FROM {prefix}users JOIN {prefix}posts ON {prefix}posts.post_author = {prefix}users.ID WHERE {prefix}posts.post_type IN ( 'page', 'post' ) GROUP BY {prefix}posts.post_author ORDER BY n DESC LIMIT 10 ) AS SortedByCountORDER BY lastname- Az eredményt a lekérdezés szerkesztőjének tetején az Eredmények előnézete kapcsolóval ellenőrizheted.
- Mentsd a lekérdezést.
A lekérdezés az alap bejegyzések és oldalak szerzőit adja vissza, a létrehozott tartalmak száma szerint csökkenő sorrendben (legfeljebb 10 felhasználó), majd vezetéknév szerint rendezi őket. Ha egyéni bejegyzéstípus szerzőit is látni akarod, add hozzá a típus slugját a WHERE sor listájához, például ( 'page', 'post', 'property' ).
Felhasználói lekérdezés
Szekció neve “Felhasználói lekérdezés”- Hozz létre egy új lekérdezést „felhasználók bejegyzésekkel 2” néven, típusa Users Query.
- Az Include/Exclude fülön az Include mező melletti makrógombbal (érmehalom ikon) válaszd a Query Results makrót.
- A Query listában az előbbi SQL-lekérdezést válaszd, a Return értéke List of selected fields from item object, a vesszővel elválasztott mezők közé pedig
IDkerül. - Kattints az Apply, majd az Add/Update Query gombra.
Listázási elem és oldal
Szekció neve “Listázási elem és oldal”- A JetEngine → Listázások/komponensek oldalon hozz létre egy új elemet Users forrással.
- Tegyél bele Dynamic Field widgetet: a Source legyen Post/Term/User/Object Data, az Object Field listából választhatsz (például megjelenítendő név, azonosító, e-mail, regisztráció dátuma). A felhasználókhoz rendelt metaboxok mezőit Dynamic Field és Dynamic Image widgetekkel jelenítheted meg.
- Frissítsd a listázási elemet.
- Az oldalon helyezz el egy Listing Grid widgetet ezzel az elemmel, a Custom Query fülön kapcsold be a Use Custom Query kapcsolót, és válaszd a „felhasználók bejegyzésekkel 2” lekérdezést.
- Tedd közzé az oldalt.
A frontenden csak azok a felhasználók látszanak, akiknek van bejegyzésük vagy oldaluk.
Készült: