j'ai créé une méta-boîte contenant du clone:
function media( $meta_boxes ) {
$prefix = '';
$meta_boxes[] = array(
'id' => 'media_1',
'title' => esc_html__( 'Media', 'media' ),
'post_types' => array( 'post','personal_projects' ),
'context' => 'advanced',
'priority' => 'high',
'autosave' => true,
'fields' => array(
array(
'id' => $prefix . 'image_advanced_2',
'type' => 'image_advanced',
'name' => esc_html__( 'Gallery', 'media' ),
),
array(
'id' => $prefix . 'video_1',
'type' => 'video',
'name' => esc_html__( 'Video', 'media' ),
),
array(
'id' => $prefix . 'oembed_1',
'type'=> 'oembed',
'name' => esc_html__( 'Embed Video', 'media' ),
'clone' => true,
'add_button' => esc_html__( 'Add video', 'media' ),
'sort_clone' => true,
),
array(
'id' => $prefix . 'url_1',
'type' => 'url',
'name' => esc_html__( 'URL', 'media' ),
'clone' => true,
),
),
);
return $meta_boxes;
}
add_filter( 'rwmb_meta_boxes', 'media' );
cela fonctionne très bien sauf que je ne peux pas obtenir les vidéos avec foreach
j'ai un vimeo et une vidéo youtube.
$btsvideoembeds = array();
$btsvideoembeds = rwmb_meta ( 'oembed_1', array( 'type' => 'oembed' ) );
foreach ( $btsvideoembeds as $btsvideoembed ) {
echo '<div>';
echo $btsvideoembed;
echo '</div>';
}
il retourne une chaîne et non un tableau
Vous pouvez aussi le coder comme ceci:
$btsvideoembeds = rwmb_get_value( 'oembed_1', array( 'type' => 'oembed' ) );
foreach ( (array) $btsvideoembeds as $btsvideoembed ) {
printf('%s', wp_oembed_get( $btsvideoembed ) );
j'ai changé le code comme ceci, et fonctionne maintenant:
$btsvideoembeds = array();
$btsvideoembeds = rwmb_get_value( 'oembed_1', array( 'type' => 'oembed' ) );
foreach ( $btsvideoembeds as $btsvideoembed ) {
echo '<div>';
echo wp_oembed_get( $btsvideoembed);
echo '</div>';
}