如何将数组作为变量放入短码_ATTS中?

时间:2013-03-05 作者:alex

我正在尝试创建一个以数组作为输入的短代码,如下所示

function product_gallery_shortcode($atts) {

extract(shortcode_atts(array(
            \'product_id\' => \'31\',
            \'prodvid\' => false,
            \'youtubeids\'=>\'\',//[\'lbRqMddP2jo\',\'eFAxx817rC0\'],
            \'thumbnr\' =>2
                ), $atts));
我喜欢遍历youtube id,但我不知道如何将youtubeids初始化为数组

所以它是这样写的

    \'youtubeids\'=> array(\'lbRrePOP2jo\',\'eFAxx17rC0\'),
问候

4 个回复
SO网友:alex

确定找到了解决方案

function product_gallery_shortcode($atts) {
extract(shortcode_atts(array(
            \'product_id\' => \'31\',
            \'prodvid\' => false,
            \'youtubeids\'=> \'\',
            \'thumbnr\' =>2
                ), $atts));
etc
我不得不把youtubeids再次变成一个数组

$youtubeidsnew = array();
$youtubeidsnew = explode(\',\', $youtubeids);

SO网友:Morteza Mohammadi

我找到了这个问题的最佳解决方案。如果要使用数组输入快捷码,请使用以下选项:

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);
在短代码输入中,可以对每个数组索引使用以下内容:

[myshortcode youtubeids="index0,index2,index3"]

SO网友:T.Todua

我使用的简单方式:

[my param="key1=value1&key2=value2"]
在短代码回调中,只需执行以下操作:

parse_str( str_replace("&", "&", $attrs[\'param\']), $array);
// var_dump( $array );

SO网友:Tom J Nowell

你能不能不仅仅做到:

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

结束

相关推荐

Using shortcodes in PHP

我试图在我的页面中使用短代码,我从一个简单的测试开始。在里面functions.php:function HelloWorldShortcode() { return \'<p>Hello World!</p>\'; } add_shortcode(\'helloworld\', \'HelloWorldShortcode\'); 在中index.php:[helloworld] 这不会产生<p>Hello World