Ugrás a fő tartalomhoz

Meta Box Show Hide

Mi ez és milyen problémát old meg?

A Meta Box Show Hide egy prémium kiegészítő a Meta Box keretrendszerhez. Segítségével teljes meta boxokat tudsz feltételesen megjeleníteni vagy elrejteni a WordPress szerkesztőben, azonnali (JavaScript-alapú) váltással. Akkor hasznos, ha a szerkesztőfelületet szeretnéd letisztítani: csak az adott kontextushoz releváns beállítások látszanak, a többi nem zavarja a munkát. Így gyorsabban szerkesztesz, kevesebb hibával, és nem kell egyedi PHP feltételeket írnod.

Hogyan működik?

A meta box definíciójához adsz egy show és/vagy hide szabálycsoportot. Ezekben megmondod, milyen körülmények között jelenjen meg vagy tűnjön el a meta box. A váltás valós időben, oldalfrissítés nélkül történik. A rejtés JavaScript-tel történik, tehát a markup betöltődik; ha el van rejtve, a mezők értékei mentéskor továbbra is beküldésre kerülnek.

Támogatott feltételek:

  • template: oldal- és post type sablonok (post_type:template.php formátummal is).
  • post_format: bejegyzésformátumok (pl. gallery, video).
  • category: bejegyzéskategóriák.
  • egyedi taxonómiák: a taxonómia slugját kulcsként használod (hierarchikus taxonómiák).
  • is_child: csak akkor jelenjen meg, ha az oldalnak van szülője.
  • input_value: tetszőleges admin UI mezők pillanatnyi értéke CSS-szelektor + érték párokkal.

A show és hide csoportokon belül a feltételeket AND/OR kapcsolattal kombinálhatod a relation kulccsal.

Fő funkciók, részletesen

  • Meta box szintű feltételes logika: Nem egyes mezőket, hanem teljes dobozokat kezelsz. Így a szerkesztő valóban a kontextushoz igazodik.
  • Azonnali, JS-alapú váltás: Ha változik egy feltétel (pl. kategória kiválasztása), a meta boxok azonnal fel/eltűnnek, oldalfrissítés nélkül.
  • Széles körű feltétel-készlet: Sablonok, post formátumok, kategóriák, hierarchikus taxonómiák, szülő/gyerek oldal viszony, sőt bármely admin input aktuális értéke is figyelhető.
  • Összetett logika: Több feltételt kombinálhatsz, külön show és hide csoportokkal, AND/OR operátorral.
  • Blokkszerkesztő és klasszikus szerkesztő támogatás: Gond nélkül működik mindkét szerkesztőben.

Gyakorlati példák

1) Oldalsablon-specifikus beállítások

Csak landing oldalsablonnál jelenjen meg a “Hero szekció” meta box:

add_filter( 'rwmb_meta_boxes', function( $boxes ) {
$boxes[] = [
'title' => 'Hero szekció',
'post_types' => ['page'],
'show' => [
'template' => ['templates/landing.php', 'page-landing.php'],
],
'fields' => [
['id' => 'hero_title', 'type' => 'text', 'name' => 'Címsor'],
],
];
return $boxes;
} );

2) Post type sablon + kategória kombináció (AND)

Egy CPT meta box csak akkor látszódjon, ha adott post type sablon és egy “event” kategória is be van állítva:

'show' => [
'relation' => 'AND',
'template' => ['event:single-event.php'],
'category' => ['event'],
]

3) Egyedi taxonómia és post formátum (OR)

Zenei bejegyzéseknél: ha a “genre” taxonómiában rock VAGY a formátum “gallery”, jelenjen meg a galéria beállítás:

'show' => [
'relation' => 'OR',
'genre' => ['rock'], // egyedi, hierarchikus taxonómia slug-ja kulcsként
'post_format' => ['gallery'],
]

4) Szülő oldalhoz kötött mezők

Csak akkor látszódjon, ha az oldalnak van szülője:

'show' => [
'is_child' => true,
]

5) Azonnali váltás admin input alapján

Ha egy select mező értéke “gallery”, jelenjen meg a képgaléria meta box:

'show' => [
'input_value' => [
['select[name="post_format"]', 'gallery'],
],
]

6) Bizonyos kategóriáknál rejts el egy meta boxot

'hide' => [
'category' => ['news', 'press'],
]

Előnyök és értékajánlat

  • Tiszta szerkesztőfelület: a szerkesztők csak a releváns beállításokat látják.
  • Kevesebb hiba: csökken a rossz mezőtöltés esélye, mert a kontextuson kívüli dobozok eltűnnek.
  • Gyorsabb munka: valós idejű váltás, nincs oldalfrissítés.
  • Kevesebb egyedi kód: nincs szükség külön PHP ellenőrzésekre; mindent a meta box konfigurációban állítasz.
  • Rugalmas bővíthetőség: egyszerűen kombinálható más Meta Box kiegészítőkkel.

Kinek ajánlott?

  • Ügynökségeknek és fejlesztőknek, akik többféle tartalomtípussal és összetett szerkesztési folyamattal dolgoznak.
  • Webszerkesztő csapatoknak, ahol fontos a gyors és hibamentes tartalomkészítés.
  • Összetett sablonokat használóknak, akik eltérő sablonokhoz eltérő beállításokat akarnak láttatni.
  • Olyan projekteknél, ahol az admin UI-n belüli értékek alapján kell azonnal váltani meta boxok között.

Különbségek kapcsolódó kiegészítőkhöz

  • MB Conditional Logic: mező- és tetszőleges HTML-elem szinten is vezérel; ha nem meta box szinten akarsz szabályozni, ezt használd.
  • MB Include Exclude: PHP-oldali megjelenítés/elrejtés; nem azonnali váltás. Ha azt is szeretnéd, hogy a rejtett mezők értékei se kerüljenek mentésre, ez a célszerű.

Korlátozások és megfontolások

  • Meta box szint: egyedi mezők feltételes megjelenítéséhez válaszd az MB Conditional Logic-ot.
  • Hierarchikus taxonómiák: egyedi taxonómiáknál ezeket támogatja a szabályrendszer.
  • JS-es rejtés: a rejtett mezők értékei mentéskor is beküldésre kerülnek. Ha ezt el akarod kerülni, használd a PHP-oldali megoldást.

Licencelés és csomagolás

  • Licenc: GPL v2+.
  • Használat: korlátlan számú webhelyen.
  • Frissítés és támogatás: éves előfizetéssel.
  • Elérhetőség: önállóan vagy csomagban.
  • Ár: megfizethető, a fejlesztési idő és hibák csökkentésével gyorsan megtérül.

Szeretnél saját esetedre szabott mintakódot (sablonhoz/kategóriához/taxonómiához kötve, input-alapú azonnali váltással)? Írj a pontos igényről, és adok kész snippetet.