web-dev-qa-db-fra.com

Comment puis-je mettre un tableau comme variable dans shortcode_atts?

J'essaie de créer un shortcode avec un tableau en entrée comme si

function product_gallery_shortcode($atts) {

extract(shortcode_atts(array(
            'product_id' => '31',
            'prodvid' => false,
            'youtubeids'=>'',//['lbRqMddP2jo','eFAxx817rC0'],
            'thumbnr' =>2
                ), $atts));

J'aime parcourir en boucle l'identifiant youtube mais je ne sais pas comment initialiser les youtubeids en tant que tableau

il lit donc

    'youtubeids'=> array('lbRrePOP2jo','eFAxx17rC0'),

cordialement

4
alex

Ok a trouvé une solution

function product_gallery_shortcode($atts) {
extract(shortcode_atts(array(
            'product_id' => '31',
            'prodvid' => false,
            'youtubeids'=> '',
            'thumbnr' =>2
                ), $atts));
etc

et je devais à nouveau transformer youtubeids en tableau

$youtubeidsnew = array();
$youtubeidsnew = explode(',', $youtubeids);
4
alex

J'ai trouvé la meilleure solution à ce problème. Si vous voulez utiliser un tableau pour l'entrée de shortcode, utilisez ceci:

function product_gallery_shortcode($atts) {
    extract(shortcode_atts(array(
                'product_id' => '31',
                'prodvid' => false,
                'youtubeids'=> array(),
                'thumbnr' =>2
                    ), $atts));
    etc 
    $youtubeids = $atts[youtubeids];
    $youtubeids = explode(',', $youtubeids);

Dans votre shortcode, vous pouvez utiliser les éléments suivants pour chaque index de tableau:

[myshortcode youtubeids="index0,index2,index3"]
2
morteza mohammadi

Ne pourriez-vous pas simplement faire:

extract(shortcode_atts(array(
            'product_id' => '31',
            'prodvid' => false,
            'youtubeids'=>array('lbRrePOP2jo','eFAxx17rC0'),
            'thumbnr' =>2
        ), $atts));
0
Tom J Nowell