使用WordPress 3.8.1,我有一个名为“Map”的自定义帖子类型,它包含一个元数据,它是一个Select
选项元素:
<label for="my_meta_box_select">Countries</label>
<select name="my_meta_box_select" id="my_meta_box_select">
<option value="asia" <?php selected( $selected, 'asia' ); ?>>Asia</option>
<option value="africa" <?php selected( $selected, 'africa' ); ?>>Africa</option>
<option value="america" <?php selected( $selected, 'america' ); ?>>America</option>
</select>
$selected = isset( $values['my_meta_box_select'] ) ? esc_attr( $values['my_meta_box_select'][0] ) : '';
到目前为止,我使用以下代码保存所选选项:
if( isset( $_POST['my_meta_box_select'] ) )
update_post_meta( $post_id, 'my_meta_box_select', esc_attr( $_POST['my_meta_box_select'] ) );
但是从安全检查的角度来看,我不确定这是否足够安全?!我是否还需要在这种输入上检查更多像Sanitizing或Escaping?(我已经了解到我们可以清理文本输入但不确定Select或Checkbox输入
答案 0 :(得分:0)
您使用的代码很好。 esc_attr正在清理的值是一个字符串。它来自选择字段而不是文本输入这一事实并不重要。
为了使它更严格,你可以在数组中保存选择选项值,然后使用in_array()来确保post值有效。