Como posso colocar uma matriz como variável em shortcode_atts?

4

Estou tentando criar um shortcode com uma matriz como entrada, como

function product_gallery_shortcode($atts) {

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

Eu gosto de percorrer o id do youtube, mas não sei como inicializar os youtubeids como uma matriz

então lê

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

considera

    
por alex 05.03.2013 / 12:41

3 respostas

4

Ok encontrou uma solução

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

e eu tive que transformar youtubeids em uma matriz novamente

$youtubeidsnew = array();
$youtubeidsnew = explode(',', $youtubeids);
    
por alex 05.03.2013 / 13:13
2

Eu encontrei a melhor solução para esse problema. Se você quiser usar array para entrada de shortcode use isto:

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

Na sua entrada de código curto, você pode usar o seguinte para cada índice de matriz:

[myshortcode youtubeids="index0,index2,index3"]
    
por morteza mohammadi 19.10.2016 / 18:22
0

Você não poderia simplesmente fazer:

extract(shortcode_atts(array(
            'product_id' => '31',
            'prodvid' => false,
            'youtubeids'=>array('lbRrePOP2jo','eFAxx17rC0'),
            'thumbnr' =>2
        ), $atts));
    
por Tom J Nowell 05.03.2013 / 13:07

Tags