web-dev-qa-db-fra.com

La méta-boîte io oembed renvoie la liste et non le tableau

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

2
Phaidonas Gialis

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 ) );
0
Dev

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>';
     }
1
Phaidonas Gialis