我在 WordPress 中创建了一个短代码。简码代码如下:
function wp_test_shortcode($atts){
$atts = shortcode_atts(array(
'id' => 'TESTTEST',
'thumb' => ''
),$atts);
$thumb = $atts['thumb'] ? $atts['thumb'] : 'https://i3.ytimg.com/vi/'.$atts['id'].'/0.jpg';
return '<div data-id="'.$atts['id'].'" data-thumb="'.$thumb.'" ></div>';
}
add_shortcode('test','wp_test_shortcode');
现在我的问题是,由于 $atts 是用户输入,如何清理和转义。
假设具有 WordPress 贡献者角色的人是这里的坏演员,Monzur Alam 是对的 - 你必须清理属性。
function wp_test_shortcode($atts){
$atts = shortcode_atts(array(
'id' => 'TESTTEST',
'thumb' => ''
),$atts);
// Sanitize Inputs
$id = sanitize_text_field($atts['id']);
$thumb = sanitize_text_field($atts['thumb']);
$thumb = $thumb ? $thumb : 'https://i3.ytimg.com/vi/'.$atts['id'].'/0.jpg';
// Escape Outputs
return '<div data-id="'.esc_attr($id)).'" data-thumb="'.esc_url($thumb).'" ></div>';
}
add_shortcode('test','wp_test_shortcode');