Adatok tárolása és kiolvasása
Hogyan menti a bővítmény a csoport értékeit, és hogyan olvasod ki őket sablonban.
Tárolás
Szekció neve “Tárolás”- A csoport értéke az almezők értékeiből álló tömb (a beágyazott csoportokkal együtt).
- Az adatbázisban szerializált tömbként tárolódik, egyetlen meta értékként.
- Az almezők értékei „úgy, ahogy vannak” mentődnek: a bővítmény nem tisztítja és nem alakítja át őket.
Például egy csoporton belüli date mezőnél a save_format paraméter nem érvényesül: a mentett érték mindig megegyezik a megjelenített értékkel.
Almezők kiolvasása
Szekció neve “Almezők kiolvasása”A csoport adatait az rwmb_meta() függvénnyel kéred le:
$csoport = rwmb_meta( 'csoport_azonosito' ) ?: [];A visszatérési érték az almezők azonosítóiból és értékeiből álló asszociatív tömb:
[ 'almezo_1' => 'érték 1', 'almezo_2' => 'érték 2',]Egy almező értéke:
$ertek = $csoport['almezo_1'] ?? '';echo $ertek;Ha a csoport ismételhető, az rwmb_meta() csoportok tömbjét adja vissza:
[ [ 'almezo_1' => 'érték 1', 'almezo_2' => 'érték 2' ], [ 'almezo_1' => 'érték 3', 'almezo_2' => 'érték 4' ],]Végigjárásuk:
$csoportok = rwmb_meta( 'csoport_azonosito' ) ?: [];foreach ( $csoportok as $csoport ) { echo $csoport['almezo_1'] ?? '';}Példa: kapcsolattartók
Szekció neve “Példa: kapcsolattartók”A csoport regisztrálása:
add_filter( 'rwmb_meta_boxes', function ( $meta_boxes ) { $meta_boxes[] = [ 'title' => 'Kapcsolattartók', 'fields' => [ [ 'id' => 'kapcsolatok', 'type' => 'group', 'clone' => true, 'fields' => [ [ 'id' => 'nev', 'name' => 'Név' ], [ 'id' => 'email', 'name' => 'E-mail' ], [ 'id' => 'telefon', 'name' => 'Telefon' ], ], ], ], ]; return $meta_boxes;} );Megjelenítésük a single.php sablonban:
$kapcsolatok = rwmb_meta( 'kapcsolatok' ) ?: [];foreach ( $kapcsolatok as $kapcsolat ) { echo '<div class="kapcsolat">'; echo '<h4>Kapcsolati adatok</h4>'; echo '<p><strong>Név:</strong> ' . $kapcsolat['nev'] . '</p>'; echo '<p><strong>E-mail:</strong> ' . $kapcsolat['email'] . '</p>'; echo '<p><strong>Telefon:</strong> ' . $kapcsolat['telefon'] . '</p>'; echo '</div>';}Csoport kiírása oldalszerkesztőkkel
Szekció neve “Csoport kiírása oldalszerkesztőkkel”- Elementor és Oxygen: a csoport almezőit közvetlenül ki tudják írni.
- Más oldalszerkesztők (például Beaver Builder, Divi): használj MB View-t vagy shortcode-ot.
Példa shortcode egy olyan csoporthoz, amelynek almezői title, images és desc:
add_shortcode( 'csoportom', function() { $csoport = rwmb_meta( 'csoport_mezo_azonosito' ); if ( empty( $csoport ) ) { return ''; } $output = '';
$title = $csoport['title'] ?? ''; $output .= $title ? '<h3>' . $title . '</h3>' : '';
$image_ids = $csoport['images'] ?? []; if ( $image_ids ) { $output .= '<div class="images">'; foreach ( $image_ids as $id ) { $image = RWMB_Image_Field::file_info( $id, [ 'size' => 'thumbnail' ] ); $output .= '<img src="' . $image['url'] . '">'; } $output .= '</div>'; }
$desc = $csoport['desc'] ?? ''; $output .= $desc ? wpautop( $desc ) : ''; return $output;} );A használatához írd be a [csoportom] kódot a bejegyzés vagy oldal tartalmába, illetve az oldalszerkesztő egyik moduljába.
Almezők értékei
Szekció neve “Almezők értékei”Az rwmb_meta() az almezők nyers értékét adja vissza, nem formázza őket úgy, mint az önálló mezőknél.
| Mezőtípus | Visszaadott érték |
|---|---|
taxonomy, user, post |
Az objektum azonosítója (vagy azonosítói) |
| Fájl- és képmezők | A csatolmány azonosítója (vagy azonosítói) |
map, osm |
"szélesség,hosszúság,nagyítás" |
oembed |
URL |
wysiwyg |
Nyers tartalom (<p></p> nélkül) |
Példa képadatok lekérésére egy almezőből:
$csoport = rwmb_meta( 'csoport_azonosito' );$image_ids = $csoport['kep_kulcs'] ?? [];foreach ( $image_ids as $id ) { $image = RWMB_Image_Field::file_info( $id, [ 'size' => 'thumbnail' ] ); echo '<img src="' . $image['url'] . '">';}További adatok lekéréséhez ezek a segédfüggvények használhatók:
| Mezőtípus | Segédfüggvény |
|---|---|
image, image_advanced, image_upload, single_image |
wp_get_attachment_image_src(), wp_get_attachment_image_url(), RWMB_Image_Field::file_info( $image_id, $args ) (az $args tömb csak a size kulcsot fogadja) |
file, file_advanced, file_upload |
get_attached_file(), RWMB_File_Field::file_info( $file_id ) |
oembed |
RWMB_OEmbed_Field::get_embed( $url ) |
taxonomy, taxonomy_advanced |
get_term() |
user |
get_userdata() |
post |
get_post() |
wysiwyg |
wpautop() |
Készült: