MB Custom Table
Meta Box prémium kiegészítő egyedi mezők sémázott, saját adatbázis-táblákba mentéséhez, nagy teljesítménnyel és fejlesztőbarát API-val.
Mi ez és mit old meg?
Szekció neve “Mi ez és mit old meg?”Az MB Custom Table a Meta Box prémium bővítménye, amellyel a Meta Box-szal létrehozott egyedi mezőket nem a WordPress alap meta tábláiba, hanem saját, sémázott adatbázis-táblákba mentheted. Minden entitás (bejegyzés, felhasználó, taxonómia, komment) egy sor, és minden mező külön oszlop. Ezzel drasztikusan csökkented a sorok számát, gyorsabbak lesznek a lekérdezések, és átláthatóbbá válik a riportolás/import-export.
Hogyan működik röviden?
Szekció neve “Hogyan működik röviden?”- Az oszlopnevek megegyeznek a mezők azonosítóival.
- Az ID oszlopot a bővítmény kezeli (primer kulcs), és összekapcsolja a WP entitásokkal.
- Csoport (group) mezők felső szintű ID-ja egy oszlop, értéke szerializált tömb.
- A tábla létrehozása a WordPress ajánlott dbDelta mechanizmusával történik, így a séma biztonságosan frissíthető.
- A mezőlekérdezések cache-elve vannak az adott objektumon belül.
Fő funkciók, érthetően
Szekció neve “Fő funkciók, érthetően”- Egyedi táblákba mentés: Az összes meződ tárgyanként egy sorban, mezőnként egy oszlopban tárolódik. Ez kevesebb JOIN-t és gyorsabb WHERE feltételeket jelent.
- Teljes meta-típus támogatás: Bejegyzés-, felhasználó-, taxonómia- és komment-meta mentése ugyanazzal a logikával.
- UI-alapú beállítás: Az MB Builderben csak bekapcsolod a „Custom table” opciót; kérésre a tábla automatikusan létrejön (alapból TEXT oszlopokkal).
- Fejlesztői API: Táblák programozott létrehozása (pontos típusokkal és indexekkel), illetve adatműveletek (exists, get, add, update, delete).
- WordPress-kompatibilis sémakezelés: dbDelta-val idempotens, verziózható sémafrissítés.
- Custom Models: Olyan önálló „modellek”, amelyek a teljes adatot egy saját táblában tartják, és admin CRUD felületet kínálnak, posztstruktúra nélkül.
- Integrációk: Admin listanézeti oszlopok (MB Admin Columns), valamint keresés a custom táblák tartalmában megfelelő keresőintegrációval.
Gyakorlati példák
Szekció neve “Gyakorlati példák”- Nagy rendelési adatbázis: 40+ mező rendelésenként – meta táblában ez sok tízezer sor, egyedi táblában viszont soronként rendezett, indexelhető mezők.
- Katalógus/ingatlan/CRM: Gyakori szűrés mezőértékekre (pl. státusz, ár, kategória) – gyors WHERE feltételek és indexek.
- Riportolás és export: Minden adat egy táblában, oszlopokban – egyszerű CSV/BI export.
- Custom Models: Nincs szükséged permalinkre/archívumra, de kell admin CRUD és sémázott tárolás – kezeld „üzleti entitásként”.
Gyors indulás
Szekció neve “Gyors indulás”UI-val (MB Builder)
Szekció neve “UI-val (MB Builder)”- Nyisd meg a Meta Box > Custom Fields nézetet, szerkeszd a mezőcsoportot.
- A Settings fülön kapcsold be a „Custom table”-t, add meg a tábla nevét.
- Opcionálisan kapcsold be az „Auto create table”-t (alapból TEXT oszlopok).
Kóddal (típusok és indexek fölött teljes kontroll)
Szekció neve “Kóddal (típusok és indexek fölött teljes kontroll)”use MetaBox\CustomTable\API as MBCT;
add_action( 'init', function() { MBCT::create( 'wp_my_orders', [ 'status' => 'VARCHAR(20)', 'amount' => 'BIGINT', 'notes' => 'TEXT', ], [ 'status' ] );} );
// Mezőcsoport (részlet)return [ 'id' => 'order_fields', 'storage_type' => 'custom_table', 'table' => 'wp_my_orders', 'fields' => [ [ 'id' => 'status', 'type' => 'select', 'options' => [ 'new' => 'Új', 'completed' => 'Kész' ] ], [ 'id' => 'amount', 'type' => 'number' ], [ 'id' => 'notes', 'type' => 'textarea' ], ],];Lekérdezések és kompatibilitás
Szekció neve “Lekérdezések és kompatibilitás”- WP_Query: A meta_query nem működik a custom táblára. Előbb SQL-lel gyűjtsd az ID-kat, majd WP_Query-ben használd a post__in-t:
global $wpdb;$ids = $wpdb->get_col( "SELECT ID FROM wp_my_orders WHERE status = 'completed'" );$q = new WP_Query( [ 'post__in' => $ids, 'orderby' => 'post__in' ] );- Keresés: Keresőintegrációval a custom táblák tartalma (akár szerializált group-értékek is) kereshetővé tehető.
- Admin listanézet: Az admin oszlopok könnyen testreszabhatók; Custom Models esetén különösen hasznos.
Előnyök és értékajánlat
Szekció neve “Előnyök és értékajánlat”- Teljesítmény: Kevesebb rekord, kevesebb JOIN, indexelhető oszlopok – gyorsabb lekérdezések és admin felület.
- Átlátható adatmodell: Sémázott tárolás, könnyebb riportolás és migráció.
- Rugalmasság: UI a gyors beállításhoz, fejlesztői API a professzionális sématervezéshez.
- Jövőállóság: WordPress-ajánlott sémakezelés, idempotens frissítések.
Kinek ajánlott?
Szekció neve “Kinek ajánlott?”- Fejlesztőknek és ügynökségeknek, akik nagy mennyiségű egyedi mező-adattal dolgoznak.
- E-kereskedelmi, katalógus-, ingatlan- és CRM-projektekhez, ahol létfontosságú a gyors szűrés és riport.
- Olyan rendszerekhez, ahol a posztmeta-duzzadás már teljesítménygondot okoz, vagy célzott üzleti entitásokra van szükség (Custom Models).
Korlátok és fontos tudnivalók
Szekció neve “Korlátok és fontos tudnivalók”- A WP_Query meta_* paraméterei nem működnek custom táblákra; külön SQL szükséges az ID-khoz.
- Group mezők értéke szerializált – nehézkes rá SQL-szintű szűrés; csak akkor használd, ha tényleg csoportos tárolás kell.
- Az automatikus tábla-létrehozás minden oszlopot TEXT-ként hoz létre; teljesítményhez definiálj célzott típusokat és indexeket kóddal.
- A Custom Models nem kap front-end sablont/permalinket; admin oldali adatkezelésre optimalizált.
Adatmigráció
Szekció neve “Adatmigráció”Meglévő mezőid postmeta-ból áthelyezhetők egyedi táblába. Tipikus lépések:
- Kapcsold be a „Custom table”-t és állítsd be a táblát.
- Hozd létre/finomítsd a sémát (típusok, indexek).
- Írj migrációs rutint, amely az érintett postok ID-ján végigmegy, beolvassa a régi mezőket, és az új táblába menti őket.
Összegzés
Szekció neve “Összegzés”Ha strukturált, gyors és skálázható tárolást szeretnél a Meta Box mezőidnek, az MB Custom Table a legjobb eszköz: egyszerre kapod meg a kényelmes UI-t, a fejlesztői kontrollt és a WordPress-kompatibilis sémakezelést. Tudatos sématervezéssel és a lekérdezési sajátosságok figyelembevételével jelentős teljesítmény- és kezelhetőségi előnyt nyersz.