Tovább a tartalomhoz

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.

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.

  1. A JetEngine → Listázások/komponensek oldalon kattints az Új elem hozzáadása gombra, és a listázási forrás legyen Users.
  2. A megnyíló Elementor-szerkesztőben tegyél le egy Heading widgetet.
  3. 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.
  4. A Title mezőbe írhatsz szabad szöveget, vagy beállíthatod, hogy a lekérdezett felhasználó becenevét írja ki.
  5. Frissítsd a listázási elemet.
  6. 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.

  1. A Smart Filters → Add New oldalon adj nevet a szűrőnek (például „Ábécészűrő”), a típusa legyen Radio.
  2. A Data Source értéke Manual Input, majd az Options List résznél kattints az Add New gombra.
  3. 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.
  4. Ha szeretnéd, kapcsold be az Ability to deselect radio buttons kapcsolót.
  5. 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, a filtering pedig egy tetszőleges változónév, amelynek meg kell egyeznie a Lekérdezéskészítőben megadott Variable Name értékkel.
  6. Töltsd ki a Filter Labels részt, majd kattints az Update gombra.
  1. Nyisd meg a JetEngine → Lekérdezéskészítő oldalt, és kattints az új lekérdezés hozzáadására.
https://minta-bolt.hu/wp-admin/admin.php?page=jet-engine-query&query_action=add
Új lekérdezés hozzáadása a Lekérdezéskészítőben

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.

  1. 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.
  2. A Custom SQL Query szakaszban a From table listából válaszd a users táblát.
  3. 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).
  4. 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.
  5. 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ű.
  6. 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).
  7. 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.
  8. Kattints az Add Query gombra.
  1. Az oldalon add hozzá a Listing Grid widgetet a felhasználói listázási elemmel.
  2. A Custom Query fülön kapcsold be a Use Custom Query kapcsolót, és válaszd ki az SQL-lekérdezést.
  3. 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.
  4. 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.

  1. 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.
  2. A Custom SQL Query szakaszban kapcsold be az Advanced/AI mode kapcsolót.
  3. 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 SortedByCount
ORDER BY lastname
  1. Az eredményt a lekérdezés szerkesztőjének tetején az Eredmények előnézete kapcsolóval ellenőrizheted.
  2. 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' ).

  1. Hozz létre egy új lekérdezést „felhasználók bejegyzésekkel 2” néven, típusa Users Query.
  2. Az Include/Exclude fülön az Include mező melletti makrógombbal (érmehalom ikon) válaszd a Query Results makrót.
  3. 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 ID kerül.
  4. Kattints az Apply, majd az Add/Update Query gombra.
  1. A JetEngine → Listázások/komponensek oldalon hozz létre egy új elemet Users forrással.
  2. 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.
  3. Frissítsd a listázási elemet.
  4. 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.
  5. 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:

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