/*
Plugin Name: options menu
Plugin URI:
Description: Companion to recipe 'Implementing the plugin menu'
Author: adrian
Version: 1.0
Author URI: http://www.xymalf.com
*/
<?php // display the admin options page
function plugin_options_page() {
<div>
<h2>My custom plugin</h2>
Options relating to the Custom Plugin.
<form action="options.php" method="post">
settings_fields('plugin_options');
do_settings_sections('plugin');
<input name="Submit" type="submit" value="<?php esc_attr_e('Save Changes'); " />
</form></div>
}
// add the admin settings and such
add_action('admin_init', 'plugin_admin_init');
function plugin_admin_init(){
register_setting( 'plugin_options', 'plugin_options', 'plugin_options_validate' );
add_settings_section('plugin_main', 'Main Settings', 'plugin_section_text', 'plugin');
add_settings_field('plugin_text_string', 'Plugin Text Input', 'plugin_setting_string', 'plugin', 'plugin_main');
function plugin_section_text() {
echo '<p>Main description of this section here.</p>';
}
<?php function plugin_setting_string() {
$options = get_option('plugin_options');
echo "<input id='plugin_text_string' name='plugin_options[text_string]' size='40' type='text' value='{$options['text_string']}' />";
}
// validate our options
function plugin_options_validate($input) {
$options = get_option('plugin_options');
$options['text_string'] = trim($input['text_string']);
if(!preg_match('/^[a-z0-9]{32}$/i', $options['text_string'])) {
$options['text_string'] = '';
}
return $options;
}
?>
[Moderator Note: Please post code & markup between backticks or use the code button. Your posted code may now have been permanently damaged by the forum's parser.]