首先,您正在使用extract
/ shortcode_atts
正确输入:
线路:
extract(shortcode_atts(array(
"li" => get_option(\'li\'),
), $liatts));
使用
shortcode_atts
然后提取将returnarray中的每个键转换为自己的变量:例如。
$li
在本例中。但你要继续使用
$liatts
无论如何,这只是从短代码传递的属性,可以包含任何内容。也没有提供任何默认值。
从你的例子来看,你想做如下事情:
function lishortcode($liatts) {
//Merge provide attributes with defaults. Whitelist attributes
$atts = shortcode_atts(array(
"url" => get_option(\'li\'),
"foo" => "bar"
), $liatts));
/* Url is in $atts[\'url\']. Do something and then return something */
return $atts[\'url\'];
}
add_filter(\'widget_text\', \'do_shortcode\');
add_shortcode(\'LI\', \'lishortcode\');
See Codex, -
note shortcode_atts()
不仅为缺少的值提供默认值,还删除了所有未指定的属性。在上面的示例中,中仅存在“url”和“foo”属性
$atts
.