Answers:
stripslashes(wp_filter_post_kses(addslashes($_POST['sidebar_code'])));
但是您应该知道kses过滤器不是100%安全的。
我采取了另一种方法。我使用HTML实体对选项进行了编码和解码。我不确定的一件事是,这是否会给人们打开讨厌的后门,以驱使破坏HTML的行为通过。我依靠的事实是,无论如何,只有管理员才能编辑主题选项,但是也许我很天真?
这是我保存选项时的样子:
update_option('my_option', htmlentities(stripslashes($_REQUEST['my_option'])));
这是我检索选项时的样子:
html_entity_decode(get_option('my_option',htmlentities($my_default_value)));
这不是您问题的完整答案,但可能会为您指明正确的方向:您可以尝试<?php esc_textarea( $text ) ?>
按以下法典中的详细说明进行操作:http : //codex.wordpress.org/Function_Reference/esc_textarea。
我自己的metabox textarea片段如下所示:
<?php
if ( $meta_box['type'] == "textarea" ) {
$meta_box_value = esc_textarea( get_post_meta($post->ID, $meta_box['name'].'_value', true) );
echo '<textarea class="meta-textarea" style="width: 100%;" cols="20" rows="2" name="' . $meta_box['name'] . '_value">' . $meta_box_value . '</textarea><br />';
}
?>