当用户写入短代码时:
[my_shortcode att1="Attribute 1 value" att2="Attribute 2 value"]
这些属性作为数组作为第一个参数传递给shortcode的回调函数:
function my_shortcode_callback( $atts ) {
// $atts = array(
// \'att1\' => \'Attribute 1 value\',
// \'att2\' => \'Attribute 2 value\',
// );
}
add_shortcode( \'my_shortcode\', \'my_shortcode_callback\' );
功能
shortcode_atts()
:
将用户属性与已知属性相结合,并在需要时填写默认值。
所以你用shortcode_atts()
要创建具有默认值的数组,除用户提供的任何属性外,其他所有受支持的属性均受支持。为此,将所有支持的属性及其默认值的数组作为第一个参数传递,并将用户提供的属性作为第二个参数传递。因此,第二个参数将是传递给回调函数的相同数组:
function my_shortcode_callback( $user_atts ) {
// $user_atts = array(
// \'att1\' => \'Attribute 1 value\',
// \'att2\' => \'Attribute 2 value\',
// );
$default_atts = array(
\'att1\' => \'Attribute 1 default\',
\'att2\' => \'Attribute 2 default\',
\'att3\' => \'Attribute 3 default\',
);
$atts = shortcode_atts( $default_atts, $user_atts, \'my_shortcode\' );
// $atts = array(
// \'att1\' => \'Attribute 1 value\',
// \'att2\' => \'Attribute 2 value\',
// \'att3\' => \'Attribute 3 default\',
// );
}
add_shortcode( \'my_shortcode\', \'my_shortcode_callback\' );
你这样做是为了你可以使用
$atts[\'att3\']
如果用户未输入,则不会导致PHP错误
att3="Attribute 3 value"
放置短代码时。
的第三个参数shorcode_atts()
应设置为短代码名称。这样就可以像这样过滤短代码属性:
add_filter(
\'shortcode_atts_my_shortcode\',
function( $atts ) {
$atts[\'atts2\'] = \'Attribute 2 override\';
return $atts;
}
);