如果复选框未选中,则不会随表单值一起提交。因此,在使用复选框时,您应该具有else
对账单isset( $_POST[\'iwmp_settings_form_submitted\'] )
当复选框被取消选中时,它基本上会被触发。这是固定代码。
//Global Variable
$options = array();
//Options Page
function iwmp_options_page() {
if( ! current_user_can( \'manage_options\' ) ) {
wp_die( \'You do not have sufficient permission to access this page.\' );
}
global $options;
// Make sure this is a POST request
if ( \'POST\' == $_SERVER[\'REQUEST_METHOD\'] ) {
if ( ! isset( $_POST[\'_iwmp_nonce\'] ) || ! wp_verify_nonce( $_POST[\'_iwmp_nonce\'], \'iwmp_settings_nonce\' ) ) {
wp_die( \'Cheating, Huh?\' );
}
if( isset($_POST[\'iwmp_settings_form_submitted\']) ) {
$hidden_field = esc_html( $_POST[\'iwmp_settings_form_submitted\'] );
if($hidden_field == "Y") {
if ( isset( $_POST[\'iwmp_single_images\'] ) ) {
$options[\'iwmp_single_images\'] = esc_html( $_POST[\'iwmp_single_images\'] );
} else {
$options[\'iwmp_single_images\'] = \'\';
}
update_option(\'iwmp_settings\', $options);
}
}
}
$options = get_option(\'iwmp_settings\');
if( $options != \'\' ) {
$iwmp_single_images = $options[\'iwmp_single_images\'];
}
require(\'plugin-settings-page-wrapper.php\');
}
我还在代码中添加了一个nonce验证(因为这是一个很好的实践)。除了下面的额外代码之外,您还应该在
<form>
在设置页面HTML中:
<?php wp_nonce_field( \'iwmp_settings_nonce\', \'_iwmp_nonce\' ); ?>
使用nonces是一种很好的做法,可以使插件更加安全。您可以在此处阅读有关Nonces的更多信息:
http://codex.wordpress.org/WordPress_Nonces 复选框的代码应如下所示:
<input name="iwmp_single_images" type="checkbox" id="iwmp_single_images" value="1" <?php checked( $options[\'iwmp_single_images\'], 1 ); ?> />