Tovább a tartalomhoz

Adatok tárolása és kiolvasása

Hogyan menti a bővítmény a csoport értékeit, és hogyan olvasod ki őket sablonban.

  • 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.

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'] ?? '';
}

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>';
}
  • 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.

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:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások