# Listázás hónapokra bontása

> A Break Listing by Months kiegészítő: a Listing Grid szakaszokra bontása közzétételi vagy metamező-dátum szerint, szűrőkkel.

A **Break Listing by Months** kiegészítő egyetlen Listing Gridet hónapok szerinti szakaszokra oszt a bejegyzés közzétételi dátuma vagy egy **Dátum** metamező szerint. Elementorral (az ingyenes is elég), blokkszerkesztővel és Bricksszel működik. Előfeltétel az aktív JetEngine, és egy egyéni bejegyzéstípus vagy bejegyzések, valamint elkészített listázási elem. A kiegészítő bármilyen objektumtípusra kiterjeszthető, és szűrőkkel, rendezéssel is használható.

## A kiegészítő telepítése

1. Töltsd le a `jet-engine-break-listing-by-months` kiegészítőt a GitHub-tárolóból (a **Code** gomb, majd **Download Zip**). Az ingyenes JetEngine-kiegészítők gyűjteményéből is letölthető.
2. Nevezd át a mappát `jet-engine-break-listing-by-month-master` névről `jet-engine-break-listing-by-month` névre.
3. A **Bővítmények → Új hozzáadása** oldalon töltsd fel, telepítsd és aktiváld, mint bármely bővítményt.

## Bontás a közzétételi dátum szerint

Ehhez **Posts** típusú egyéni lekérdezés kell.

1. A **JetEngine → Lekérdezéskészítő** oldalon kattints az **Új hozzáadása** gombra.
2. Add meg a nevet (például „Hónapokra bontás”), a **Query ID** mezőbe írd: `break_months`, a lekérdezés típusa legyen **Posts Query**.
3. A **Posts Query** fülön add meg a **Post Type** értékét (például **Posts**) és a **Post Status** értékét (például **Published**).
4. Mentsd a lekérdezést (**Add/Update Query**).

![A Lekérdezéskészítő lekérdezéseinek listája](./kepek/listazas-1-lekerdezesek.webp)

*A Lekérdezéskészítő lekérdezéseinek listája* (https://minta-bolt.hu/wp-admin/admin.php?page=jet-engine-query)

A képen a lekérdezések listája látszik; itt jelenik meg a mentett lekérdezés is.

Ezután alkalmazd a lekérdezést a Listing Gridre:

- **Elementor**: a bejegyzések Listing Grid widgetét tartalmazó oldalon nyisd meg a **Custom Query** szakaszt, kapcsold be a **Use Custom Query** kapcsolót, válaszd ki a lekérdezést, és kattints az **Update** gombra.
- **Blokkszerkesztő**: a Listing Grid blokknál ugyanígy a **Custom Query** fülön, majd **Save**.
- **Bricks**: a Listing Grid elemnél a **Custom Query** fülön, majd **Save**.

## Bontás metamező dátuma szerint

Ehhez a téma fájljába is kell egy sor, és egy **Posts** lekérdezés.

1. Vegyél fel **Dátum** metamezőt az egyéni bejegyzéstípushoz a **Metamezők** részen. Az alap WordPress bejegyzéstípusokhoz metaboxszal add hozzá. Állíts be dátumot több bejegyzésnél, hogy lásd az eredményt.
2. Nyisd meg a **Megjelenés → Témafájl-szerkesztő** oldalt, és a jobb oldali menüben válaszd az aktív téma `functions.php` fájlját.
3. A fájl végére írd be:

```php
define( 'JET_ENGINE_BREAK_BY_FIELD', 'date' );
```

Az itt szereplő `date` helyére a dátum metamező neve kerül (a példában `date_`). Mentsd a **Fájl frissítése** gombbal.

4. Hozz létre egy **Posts Query** típusú lekérdezést `break_months` azonosítóval, és a **Posts Query** fülön add meg a bejegyzéstípust (az egyéni vagy az alap típust, amelynek van dátum metamezője). Mentsd.
5. A Listing Gridnél kapcsold be a **Use Custom Query** kapcsolót, és válaszd ki a lekérdezést (**CUSTOM QUERY** lista).

## Szűrők használata

Ehhez a JetSmartFilters bővítmény kell. A **Smart Filters → Add New** oldalon hozz létre szűrőt, a példában keresőszűrőt.

- **Blokkszerkesztő**: add hozzá a **Search** blokkot, a **SELECT FILTER** listában válaszd ki a szűrőt, a **THIS FILTER FOR** értéke **Listing Grid**, a **QUERY ID** mezőbe írd: `break_months`. A Listing Grid **Advanced** fülén a **CSS ID** mezőbe is `break_months` kerül. Mentsd az oldalt.
- **Elementor**: add hozzá a **Search Filter** widgetet, a **Select Filter** listában válaszd ki a szűrőt, a **This filter for** értéke **JetEngine**, a **Query ID** mező `break_months`. A Listing Grid **Advanced** fülén a **CSS ID** is `break_months`. Frissítsd az oldalt.
- **Bricks**: add hozzá a **Search Filter** elemet, a **Select Filter** listában válaszd ki a szűrőt, a **This filter for** értéke **JetEngine**, a **Query ID** `break_months`. A Listing Grid **STYLE** fülén a **CSS** résznél a **CSS ID** is `break_months`. Mentsd.

A frontenden a keresés eredménye is hónapok szerint van szakaszokra bontva.

## Haladó: más objektumtípusok

A kiegészítő PHP-fájljában az adatlekérő részt kell átírni:

- egyéni tartalomtípus létrehozási dátuma: `$post->cct_created`; az egyéni mezők a nevükön érhetők el: `$post->my_field`;
- kifejezéseknél és felhasználóknál a `get_term_meta` és a `get_user_meta` függvényt kell használni.
