Skip to content

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.

This content is not available in your language yet.

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.

  • 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.
  • 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.
  • 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”.
  1. Nyisd meg a Meta Box > Custom Fields nézetet, szerkeszd a mezőcsoportot.
  2. A Settings fülön kapcsold be a „Custom table”-t, add meg a tábla nevét.
  3. 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' ],
],
];
  • 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.
  • 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.
  • 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).
  • 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.

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.

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.

We respect your privacy

We use cookies to improve your browsing experience and to analyse traffic. Analytics only starts if you allow it. Privacy policy, Cookie policy.

Cookie settings