更重要的是,您不应该让*不受信任、未初始化的$\\u发布数据*到WordPress中。
但我认为问题在于,您正在使用整个$\\u POST数据更新选项,而不是使用适当的数组键:
update_option(\'eirepanel_inline_ads_options\', $_POST);
应该是这样的:
update_option(\'eirepanel_inline_ads_options\', $_POST[\'eirepanel_inline_ads_options_name\']);
您的插件选项是离散的(每个选项一个DB条目)还是选项数组?
EDIT
由于您使用的是选项数组,正确的方法是:
定义一个数组来保存$_POST
数据($input = array()
)定义一个数组以从DB($valid_input = array()
)清洗$_POST
数据更新$valid_data
已消毒的阵列$input
数组传递更新的$valid_data
返回DB,例如。
$input = ( isset( $_POST ) ? $_POST : false );
$valid_input = get_option( \'eirepanel_inline_ads_options\' );
foreach ( $input as $key ) {
// sanitize data here
}
$valid_input = array_merge( $valid_input, $input );
update_option( \'eirepanel_inline_ads_options\', $valid_input );
只是又快又脏,但应该给你一个主意。
另外:在这里使用设置API将特别有用。