How to add an option to wordpress general settings page i.e. /wp-admin/options-general.php?
The dirty way. Put the following snippet in functions.php file:
[php]add_filter( ‘admin_init’ , ‘clinto_register_fields’ );
function clinto_register_fields() {
//delete_option( "clinto_under_maintenance" );
register_setting( ‘general’, ‘clinto_under_maintenance’, ‘esc_attr’ );
add_settings_field(‘mk_clinto_under_maintenance’, ‘<label for="clinto_under_maintenance">’. ‘Under Maintenance’ . ‘</label>’ , ‘clinto_fields_html’ , ‘general’ );
}
function clinto_fields_html() {
$value = get_option( ‘clinto_under_maintenance’);
$checked = ($value==’yes’) ? ‘checked="checked"’ : ”;
echo ‘<input type="hidden" name="clinto_under_maintenance" value="no" /><input id="clinto_under_maintenance" type="checkbox" checked="checked" name="clinto_under_maintenance" value="yes" />’;
}[/php]
Recommended way, so that you keep everything grouped and out of conflict troubles. Put the following snippet in functions.php file:
Create a class with required logic and then create an instance.
[php]class clinto_general_settings {
function clinto_general_settings() {
add_filter( ‘admin_init’ , array( &$this , ‘clinto_register_fields’ ) );
}
function clinto_register_fields() {
register_setting( ‘general’, ‘clinto_under_maintenance’, ‘esc_attr’ );
add_settings_field(‘mk_clinto_under_maintenance’, ‘<label for="clinto_under_maintenance">’.__(‘Under Maintenance’ , ‘clinto_under_maintenance’ ).'</label>’ , array(&$this, ‘clinto_fields_html’) , ‘general’ );
}
function clinto_fields_html() {
$value = get_option( ‘clinto_under_maintenance’);
$checked = ($value==’yes’) ? ‘checked="checked"’ : ”;
echo ‘<input type="hidden" name="clinto_under_maintenance" value="no" /><input id="clinto_under_maintenance" type="checkbox" checked="checked" name="clinto_under_maintenance" value="yes" />’;
}
}
$clinto_general_settings = new clinto_general_settings();[/php]
Whenever you wanted to check the value of option you will obviously do:
[php]$value = get_option( ‘clinto_under_maintenance’);[/php]