如果短代码上没有使用属性,则$atts
将是字符串,因此您不能使用extract
在上面。你的部分问题是你没有使用shortcode_atts
正确地您需要指定shortcode_atts
返回到$atts
. 这将确保$atts
是一个包含所有正确键的数组。
add_shortcode(\'img_portfolio\', \'add_img_portfolio\');
function add_img_portfolio($atts){
$atts = shortcode_atts(array(
\'url\' => \'https://s3.amazonaws.com/popco/images/services/starter-page/img-placeholder.jpg\',
\'height\' => \'auto\'
), $atts);
extract($atts);
return \'<img class="img-fluid d-block mx-auto" src="\'.$url.\'" alt="" width=100% height="\'.$height.\'">\';
}
但老实说,不要使用
extract()
, 这被认为是一种不好的做法,因为您的代码最终会得到一堆显然没有分配到任何地方的变量。仅使用
$atts
作为阵列:
function add_img_portfolio($atts){
$atts = shortcode_atts(array(
\'url\' => \'https://s3.amazonaws.com/popco/images/services/starter-page/img-placeholder.jpg\',
\'height\' => \'auto\'
), $atts);
return \'<img class="img-fluid d-block mx-auto" src="\'.$atts[\'url\'].\'" alt="" width=100% height="\'.$atts[\'height\'].\'">\';
}