Передача массива javascript в shortcode

Я пытаюсь передать массив javascript в короткий код, но он, кажется, дезинфицирован / экранирован. Например, этот символ «[» генерирует это “ “ `. Какова функция для извлечения исходных данных?

Вот пример короткого кода:

[shortcode jsarray="[{start:"19:30",end:"21:00",color:'#d99694'},{start:"20:00",end: "21:30",color:'#d99694'},],"] Some text [/shortcode] 

Вот моя функция вывода короткого кода:

 public function render_html($atts,$content) { $atts = shortcode_atts(array('jsarray' =>''), $atts); $jsarray=$atts['jsarray']; if(empty($jsarray)) { return; } ob_start(); ?> <div data="<?php echo base64_encode($jsarray) ?>"> <?php echo $content; ?> </div> <?php return ob_get_clean(); } 

EDIT: Вот результат в функции shortcode_atts:

 `{`{``start``:``19:30``, ``end``:``21:00``, ``color``:``#d99694``}, {``start``:``19:30``, ``end``:``21:00``, ``color``:``#d99694``}`}` 

Solutions Collecting From Web of "Передача массива javascript в shortcode"

У вас будут другие проблемы, кроме скобок, потому что shortcode_parse_atts уже проанализировал ваши атрибуты, а различные одиночные и двойные кавычки будут путать регулярное выражение, используемое для этого.

Если вам нужна точная строка, возможно, вы можете получить ее из настраиваемого поля. В качестве альтернативы вы можете указать несколько атрибутов для вашего короткого кода (time1start, time1end, time1color и т. Д.) И перестроить свой Javascript на задней панели.