老实说,这没什么用。如果代码如您所描述的那样,那么它所做的就是在内容的任一侧添加句号。如果不是这样,那么可能会丢失代码。
其他部分:
什么是extract?
extract 是许多旧的WP代码示例中使用的PHP函数,这是一种非常糟糕的做法。它接受数组中的键和值,并将它们转换为变量。
问题是,您不知道数组中有什么以及它将创建什么变量。extract 覆盖其他变量可能会导致问题。编辑器和工具在使用extract, 并将生成错误警告。
extract 还鼓励编写糟糕的代码。通过依赖以这种方式创建的变量,如果这些值从一开始就不在数组中,就会遇到问题,从而生成通知。始终避免extract, 作者使用它是一个错误。这不是好的做法。
在您问题中的示例中extract 甚至不使用调用,结果可以简化为:
function my_shortcode($atts, $content = \'\'){
return ".$content.";
}
add_shortcode("warrning_dialog", "my_shortcode");
怎么样shortcode_atts?
extract 需要一个键和值的数组,它将转换为变量和值,那么这个数组来自哪里呢?
它来自$atts 传递给短代码的属性,例如。[shortcode att1="value" another_attribute="anothervalue"]content[/shortcode]
但是如果用户没有指定我们需要的属性呢?好shortcode_atts 让我们获取属性列表,并添加缺少的默认值。这样他们就一直在那里:
shortcode_atts(array("type" => "warrning"), $atts)
最好写为:
$atts = shortcode_atts( [
\'type\' => \'warrning\'
], $atts);
如果需要访问属性类型,可以使用
$atts[\'type\']那怎么办".$content."?
这只是一个嵌入了变量的字符串。例如:
$name = \'Tom\';
echo "My name is $name";
上述代码将输出:
我叫汤姆
这也是一种将安全问题引入站点的好方法。这是因为这种方式不可能延迟逃跑/消毒。请始终使用串联。
".$content." 与相同\'.\'.$content.\'.\'