有两种解决方案:
使用third argument for the shortcode.使用use
关键字示例
每个短代码回调的第三个参数是短代码的名称:
foreach ($files1 as $value) {
$new_value = substr($value, 0, -4);
add_shortcode($new_value, function( $attributes, $content, $shortcode ) {
return \'<img src="\' . PATH . L_ITEMS . $shortcode . \'.gif">\';
});
}
<将所需的变量传递给
use
lambda函数的一部分:
foreach ($files1 as $value) {
$new_value = substr($value, 0, -4);
add_shortcode($new_value, function() use ( $new_value ) {
return \'<img src="\' . PATH . L_ITEMS . $new_value . \'.gif">\';
});
}
我认为您应该只注册一个短代码,并将文件作为属性值传递。这将更快更容易调试。